23 Strings library [strings]

23.3 String view classes [string.view]

23.3.3 Class template basic_string_view [string.view.template]

23.3.3.6 Element access [string.view.access]

constexpr const_reference operator[](size_type pos) const;
Preconditions: pos < size().
Returns: data_[pos].
Throws: Nothing.
[Note 1: 
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;
Returns: data_[pos].
Throws: out_of_range if pos >= size().
constexpr const_reference front() const;
Preconditions: !empty().
Returns: data_[0].
Throws: Nothing.
constexpr const_reference back() const;
Preconditions: !empty().
Returns: data_[size() - 1].
Throws: Nothing.
constexpr const_pointer data() const noexcept;
Returns: data_.
[Note 2: 
Unlike basic_string​::​data() and string-literals, data() can return a pointer to a buffer that is not null-terminated.
Therefore it is typically a mistake to pass data() to a function that takes just a const charT* and expects a null-terminated string.
— end note]