Technical specifications
Filesystem library (filesystem TS)
Library fundamentals (library fundamentals TS)
Library fundamentals 2 (library fundamentals 2 TS)
Extensions for parallelism (parallelism TS)
Extensions for parallelism 2 (parallelism TS v2)
Extensions for concurrency (concurrency TS)
Concepts (concepts TS)
Ranges (ranges TS)
Special mathematical functions (special math TR)
Defined in header <experimental/string_view>

    class CharT,
    class Traits = std::char_traits<CharT>

> class basic_string_view;
(library fundamentals TS)

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>

Template parameters

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

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.

Member functions

constructs a basic_string_view
(public member function)
assigns a view
(public member function)
returns an iterator to the beginning
(public member function)
returns an iterator to the end
(public member function)
returns a reverse iterator to the beginning
(public member function)
returns a reverse iterator to the end
(public member function)
Element access
access specified character
(public member function)
access specified character with bounds checking
(public member function)
accesses the first character
(public member function)
accesses the last character
(public member function)
returns a pointer to the first character of a view
(public member function)
returns the number of characters
(public member function)
returns the maximum number of characters
(public member function)
checks whether the view is empty
(public member function)
Shrinks the view by moving its start forward
(public member function)
Shrinks the view by moving its end backward
(public member function)
swaps the contents
(public member function)
creates a string from the view
(public member function)
copies characters
(public member function)
returns a substring
(public member function)
compares two views
(public member function)
find characters in the view
(public member function)
find the last occurrence of a substring
(public member function)
find first occurrence of characters
(public member function)
find last occurrence of characters
(public member function)
find first absence of characters
(public member function)
find last absence of characters
(public member function)


special value. The exact meaning depends on the context
(public static member constant)

Non-member functions

lexicographically compares two views
(function template)
performs stream output on views
(function template)

Helper classes

hash support for views
(class template specialization)

Feature test macros

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