[spanbuf.members]

31 Input/output library [input.output]

31.9 Span-based streams [span.streams]

31.9.3 Class template basic_spanbuf [spanbuf]

31.9.3.4 Member functions [spanbuf.members]

std::span<charT> span() const noexcept;

Returns: If ios_base​::​out is set in mode, returns std​::​span<charT>(pbase(), pptr()), otherwise returns buf.

[Note 1:

In contrast to basic_stringbuf, the underlying sequence never grows and is not owned.

An owning copy can be obtained by converting the result to basic_string<charT>.

— end note]

void span(std::span<charT> s) noexcept;

Effects: buf = s.

Initializes the input and output sequences according to mode.

Postconditions:

  • If ios_base​::​out is set in mode, pbase() == s.data() && epptr() == pbase() + s.size() is true;

    • in addition, if ios_base​::​ate is set in mode, pptr() == pbase() + s.size() is true,
    • otherwise pptr() == pbase() is true.
  • If ios_base​::​in is set in mode, eback() == s.data() && gptr() == eback() && egptr() == eback() + s.size() is true.