30 Input/output library [input.output]

30.8 String-based streams [string.streams]

30.8.2 Class template basic_­stringbuf [stringbuf]

30.8.2.1 basic_­stringbuf constructors [stringbuf.cons]

explicit basic_stringbuf( ios_base::openmode which = ios_base::in | ios_base::out);

Effects: Создает объект класса basic_­stringbuf, инициализируя базовый класс с помощью basic_­streambuf() ([streambuf.cons]) и инициализируя mode с помощью which.

Postconditions: str() == "".

explicit basic_stringbuf( const basic_string<charT, traits, Allocator>& s, ios_base::openmode which = ios_base::in | ios_base::out);

Effects: Создает объект класса basic_­stringbuf, инициализируя базовый класс с помощью basic_­streambuf() ([streambuf.cons]) и инициализируя mode с помощью which. Потом звонит str(s).

basic_stringbuf(basic_stringbuf&& rhs);

Effects: Переместите конструкции из rvalue rhs. Это определяется реализация ли указатели последовательности в *this (eback(), gptr(), egptr(), pbase(), pptr(), epptr()) получить значение , которые rhs имели. Независимо от того, работают они или нет, *this и rhs ссылаются на отдельные буферы (если они вообще есть) после построения. Также копируются режим openmode, locale и любое другое состояние rhs .

Postconditions: Позвольте rhs_­p ссылаться на состояние rhs непосредственно перед этой конструкцией и позвольте rhs_­a ссылаться на состояние rhs сразу после этой конструкции.

  • str() == rhs_­p.str()

  • gptr() - eback() == rhs_­p.gptr() - rhs_­p.eback()

  • egptr() - eback() == rhs_­p.egptr() - rhs_­p.eback()

  • pptr() - pbase() == rhs_­p.pptr() - rhs_­p.pbase()

  • epptr() - pbase() == rhs_­p.epptr() - rhs_­p.pbase()

  • if (eback()) eback() != rhs_­a.eback()

  • if (gptr()) gptr() != rhs_­a.gptr()

  • if (egptr()) egptr() != rhs_­a.egptr()

  • if (pbase()) pbase() != rhs_­a.pbase()

  • if (pptr()) pptr() != rhs_­a.pptr()

  • if (epptr()) epptr() != rhs_­a.epptr()