21 Strings library [strings]

21.4 String view classes [string.view]

21.4.2 Class template basic_string_view [string.view.template]

21.4.2.4 Element access [string.view.access]

constexpr const_reference operator[](size_type pos) const;

Requires: pos < size().

Returns: data_[pos].

Throws: Nothing.

Note: Unlike basic_string::operator[], basic_string_view::operator[](size()) has undefined behavior instead of returning charT().  — end note ]

constexpr const_reference at(size_type pos) const;

Throws: out_of_range if pos >= size().

Returns: data_[pos].

constexpr const_reference front() const;

Requires: !empty().

Returns: data_[0].

Throws: Nothing.

constexpr const_reference back() const;

Requires: !empty().

Returns: data_[size() - 1].

Throws: Nothing.

constexpr const_pointer data() const noexcept;

Returns: data_.

Note: Unlike 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.  — end note ]