[string.view.access] (original) (raw)

27 Strings library [strings]

27.3 String view classes [string.view]

27.3.3 Class template basic_string_view [string.view.template]

27.3.3.6 Element access [string.view.access]

constexpr const_reference operator[](size_type pos) const;

Hardened preconditions: pos < size() is true.

[Note 1:

This precondition is stronger than the one on basic_string​::​operator[].

— _end note_]

constexpr const_reference at(size_type pos) const;

Throws: out_of_range if pos >= size().

constexpr const_reference front() const;

Hardened preconditions: empty() is false.

constexpr const_reference back() const;

Hardened preconditions: empty() is false.

Returns: data_[size() - 1].

constexpr const_pointer data() const noexcept;

[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_]