std::basic_string_view (3) - Linux Manuals
std::basic_string_view: std::basic_string_view
NAME
std::basic_string_view - std::basic_string_view
Synopsis
Defined in header <string_view>
template<
class CharT, (since C++17)
class Traits = std::char_traits<CharT>
> class basic_string_view;
The class template basic_string_view describes an object that can refer to a constant contiguous sequence of char-like objects with the first element of the sequence at position zero.
A typical implementation holds only two members: a pointer to constant CharT and a size.
Several typedefs for common character types are provided:
Defined in header <string_view>
Type Definition
std::string_view std::basic_string_view<char>
std::wstring_view std::basic_string_view<wchar_t>
std::u8string_view std::basic_string_view<char8_t> (C++20)
std::u16string_view std::basic_string_view<char16_t>
std::u32string_view std::basic_string_view<char32_t>
Template parameters
CharT - character type
Traits - CharTraits class specifying the operations on the character type. Like for basic_string, Traits::char_type must name the same type as CharT or the program is ill-formed.
Member types
Member type Definition
traits_type Traits
value_type CharT
pointer CharT*
const_pointer const CharT*
reference CharT&
const_reference const CharT&
const_iterator , ConstexprIterator
iterator const_iterator
reverse_iterator const_reverse_iterator
const_reverse_iterator std::reverse_iterator<const_iterator>
size_type std::size_t
difference_type std::ptrdiff_t
Note: iterator and const_iterator are the same type because string views are views into constant character sequences.
All requirements on the iterator types of a Container applies to the iterator and const_iterator types of basic_string_view as well.
Member functions
constructor (public member function)
operator= (public member function)
Iterators
begin (public member function)
cbegin
end (public member function)
cend
rbegin (public member function)
crbegin
rend (public member function)
crend
Element access
operator[] (public member function)
at (public member function)
front (public member function)
back (public member function)
data (public member function)
Capacity
size (public member function)
length
max_size (public member function)
empty (public member function)
Modifiers
remove_prefix (public member function)
remove_suffix (public member function)
swap (public member function)
Operations
copy (public member function)
substr (public member function)
compare (public member function)
starts_with checks if the string view starts with the given prefix
(C++20)
ends_with checks if the string view ends with the given suffix
(C++20)
find (public member function)
rfind (public member function)
find_first_of (public member function)
find_last_of (public member function)
find_first_not_of (public member function)
find_last_not_of (public member function)
Constants
npos special value. The exact meaning depends on the context
[static]
Non-member functions
operator==
operator!= lexicographically compares two string views
operator< (function template)
operator>
operator<=
operator>=
begin returns iterators to the beginning and the end of the string view
end (function)
(C++20)
Input/output
operator<< (function template)
Literals
Defined in inline namespace std::literals::string_view_literals
operator""sv Creates a string view of a character array literal
(C++17)
Helper classes
std::hash<std::string_view>
std::hash<std::wstring_view>
std::hash<std::u8string_view>
std::hash<std::u16string_view>
std::hash<std::u32string_view> hash support for string views
(C++17)
(C++17)
(C++20)
(C++17)
(C++17)
Notes
It is the programmer's responsibility to ensure that std::string_view does not outlive the pointed-to character array: