std::basic_string_view<CharT,Traits>::data (3) - Linux Manuals
std::basic_string_view<CharT,Traits>::data: std::basic_string_view<CharT,Traits>::data
Command to display std::basic_string_view<CharT,Traits>::data
manual in Linux: $ man 3 std::basic_string_view<CharT,Traits>::data
NAME
std::basic_string_view<CharT,Traits>::data - std::basic_string_view<CharT,Traits>::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, data() may return a pointer to a buffer that is not null-terminated. 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 <iostream>
#include <cstring>
#include <cwchar>
#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
accesses the first character
front (public member function)
accesses the last character
back (public member function)
Pages related to std::basic_string_view<CharT,Traits>::data
- std::basic_string_view<CharT,Traits>::at (3) - std::basic_string_view<CharT,Traits>::at
- std::basic_string_view<CharT,Traits>::back (3) - std::basic_string_view<CharT,Traits>::back
- std::basic_string_view<CharT,Traits>::basic_string_view (3) - std::basic_string_view<CharT,Traits>::basic_string_view
- std::basic_string_view<CharT,Traits>::begin,std::basic_string_view<CharT,Traits>::cbegin (3) - std::basic_string_view<CharT,Traits>::begin,std::basic_string_view<CharT,Traits>::cbegin
- std::basic_string_view<CharT,Traits>::compare (3) - std::basic_string_view<CharT,Traits>::compare
- std::basic_string_view<CharT,Traits>::copy (3) - std::basic_string_view<CharT,Traits>::copy
- std::basic_string_view<CharT,Traits>::empty (3) - std::basic_string_view<CharT,Traits>::empty
- std::basic_string_view<CharT,Traits>::end,std::basic_string_view<CharT,Traits>::cend (3) - std::basic_string_view<CharT,Traits>::end,std::basic_string_view<CharT,Traits>::cend
- std::basic_string_view<CharT,Traits>::ends_with (3) - std::basic_string_view<CharT,Traits>::ends_with
- std::basic_string_view<CharT,Traits>::find (3) - std::basic_string_view<CharT,Traits>::find
- std::basic_string_view<CharT,Traits>::find_first_not_of (3) - std::basic_string_view<CharT,Traits>::find_first_not_of
- std::basic_string_view<CharT,Traits>::find_first_of (3) - std::basic_string_view<CharT,Traits>::find_first_of
- std::basic_string_view<CharT,Traits>::find_last_not_of (3) - std::basic_string_view<CharT,Traits>::find_last_not_of
- std::basic_string_view<CharT,Traits>::find_last_of (3) - std::basic_string_view<CharT,Traits>::find_last_of
- std::basic_string_view<CharT,Traits>::front (3) - std::basic_string_view<CharT,Traits>::front
- std::basic_string_view<CharT,Traits>::max_size (3) - std::basic_string_view<CharT,Traits>::max_size
- std::basic_string_view<CharT,Traits>::npos (3) - std::basic_string_view<CharT,Traits>::npos
- std::basic_string_view<CharT,Traits>::operator= (3) - std::basic_string_view<CharT,Traits>::operator=
- std::basic_string_view<CharT,Traits>::operator[] (3) - std::basic_string_view<CharT,Traits>::operator[]
- std::basic_string_view<CharT,Traits>::rbegin, (3) - std::basic_string_view<CharT,Traits>::rbegin,
- std::basic_string_view<CharT,Traits>::rbegin,std::basic_string_view<CharT,Traits>::crbegin (3) - std::basic_string_view<CharT,Traits>::rbegin,std::basic_string_view<CharT,Traits>::crbegin
- std::basic_string_view<CharT,Traits>::remove_prefix (3) - std::basic_string_view<CharT,Traits>::remove_prefix
- std::basic_string_view<CharT,Traits>::remove_suffix (3) - std::basic_string_view<CharT,Traits>::remove_suffix
- std::basic_string_view<CharT,Traits>::rend,std::basic_string_view<CharT,Traits>::crend (3) - std::basic_string_view<CharT,Traits>::rend,std::basic_string_view<CharT,Traits>::crend
- std::basic_string_view<CharT,Traits>::rfind (3) - std::basic_string_view<CharT,Traits>::rfind
- std::basic_string_view<CharT,Traits>::size,std::basic_string_view<CharT,Traits>::length (3) - std::basic_string_view<CharT,Traits>::size,std::basic_string_view<CharT,Traits>::length
- std::basic_string_view<CharT,Traits>::starts_with (3) - std::basic_string_view<CharT,Traits>::starts_with
- std::basic_string_view<CharT,Traits>::substr (3) - std::basic_string_view<CharT,Traits>::substr
- std::basic_string_view<CharT,Traits>::swap (3) - std::basic_string_view<CharT,Traits>::swap
- std::basic_string_view (3) - std::basic_string_view