std::experimental::basic_string_view - cppreference.com (original) (raw)

std::experimental::basic_string_view

Merged into ISO C++ The functionality described on this page was merged into the mainline ISO C++ standard as of 3/2016, see std::basic_string_view (since C++17)

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 <experimental/string_view>
Type Definition
std::experimental::string_view std::experimental::basic_string_view<char>
std::experimental::wstring_view std::experimental::basic_string_view<wchar_t>
std::experimental::u16string_view std::experimental::basic_string_view<char16_t>
std::experimental::u32string_view std::experimental::basic_string_view<char32_t>

Contents

[edit] Template parameters

CharT - character type
Traits - traits class specifying the operations on the character type

[edit] 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 implementation-defined LegacyRandomAccessIterator
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.

[edit] Member functions

(constructor) constructs a basic_string_view (public member function) [edit]
operator= assigns a view (public member function) [edit]
Iterators
begincbegin returns an iterator to the beginning (public member function) [edit]
endcend returns an iterator to the end (public member function) [edit]
rbegincrbegin returns a reverse iterator to the beginning (public member function) [edit]
rendcrend returns a reverse iterator to the end (public member function) [edit]
Element access
operator[] access specified character (public member function) [edit]
at access specified character with bounds checking (public member function) [edit]
front accesses the first character (public member function) [edit]
back accesses the last character (public member function) [edit]
data returns a pointer to the first character of a view (public member function) [edit]
Capacity
sizelength returns the number of characters (public member function) [edit]
max_size returns the maximum number of characters (public member function) [edit]
empty checks whether the view is empty (public member function) [edit]
Modifiers
remove_prefix shrinks the view by moving its start forward (public member function) [edit]
remove_suffix shrinks the view by moving its end backward (public member function) [edit]
swap swaps the contents (public member function) [edit]
Operations
to_stringoperator basic_string creates a string from the view (public member function) [edit]
copy copies characters (public member function) [edit]
substr returns a substring (public member function) [edit]
compare compares two views (public member function) [edit]
find find characters in the view (public member function) [edit]
rfind find the last occurrence of a substring (public member function) [edit]
find_first_of find first occurrence of characters (public member function) [edit]
find_last_of find last occurrence of characters (public member function) [edit]
find_first_not_of find first absence of characters (public member function) [edit]
find_last_not_of find last absence of characters (public member function) [edit]
Constants
npos[static] special value. The exact meaning depends on the context (public static member constant) [edit]

[edit] Non-member functions

[edit] Helper classes

[edit] Feature test macros

__cpp_lib_experimental_string_view a value of at least 201411 indicates that basic_string_view template is supported (macro constant)