home | help
std::basic_..._view::data(3)   C++ Standard Libary  std::basic_..._view::data(3)

NAME
     std::basic_string_view::data - std::basic_string_view::data

Synopsis
	constexpr const_pointer data() const noexcept;	(since C++17)

	Returns a pointer to the underlying character array. The pointer is such
     that the
	range [data(), data() + size()) is valid and the values in it correspond
     to the
	values of the view.

Parameters
	(none)

Return value
	A pointer to the underlying character array.

Complexity
	Constant.

Notes
	Unlike	 std::basic_string::data()   and   string   literals,	std::ba-
     sic_string_view::data()
	returns a pointer to a buffer that is not  necessarily	null-terminated,
     for example a
	substring  view  (e.g. from remove_suffix). Therefore, it is typically a
     mistake to
	pass data() to a routine that takes just a const CharT* and expects a
	null-terminated string.

Example
     // Run this code

      #include <cstring>
      #include <cwchar>
      #include <iostream>
      #include <string>
      #include <string_view>

      int main()
      {
	  std::wstring_view wcstr_v = L"xyzzy";
	  std::cout << std::wcslen(wcstr_v.data()) << '\n';
	  // OK: the underlying character array is null-terminated

	  char array[3] = {'B', 'a', 'r'};
	  std::string_view array_v(array, sizeof array);
	  // std::cout << std::strlen(array_v.data()) << '\n';
	  // error: the underlying character array is not null-terminated

	  std::string str(array_v.data(), array_v.size()); // OK
	  std::cout << std::strlen(str.data()) << '\n';
	  // OK: the underlying character array of a std::string is always null-
     terminated
      }

Output:
      5
      3

See also
	front accesses the first character
	      (public member function)
	back  accesses the last character
	      (public member function)
	data  returns a pointer to the first character of a string
	      (public member function of  std::basic_string<CharT,Traits,Alloca-
     tor>)

http://cppreference.com 	   2024.06.10	    std::basic_..._view::data(3)

home | help