30 Input/output library [input.output]

30.8 String-based streams [string.streams]

30.8.2 Class template basic_­stringbuf [stringbuf]

30.8.2.3 Member functions [stringbuf.members]

basic_string<charT, traits, Allocator> str() const;

Returns: basic_­string Объект, содержание которого равна basic_­stringbuf базовой последовательности символов. Если basic_­stringbuf был создан только в режиме ввода, результат будет basic_­string содержать последовательность символов в диапазоне [eback(), egptr()). Если basic_­stringbuf был создан с which & ios_­base​::​out ненулевым значением, то результат basic_­string содержит последовательность символов в диапазоне [pbase(), high_­mark), где high_­mark представляет позицию после самого высокого инициализированного символа в буфере. Символы можно инициализировать путем записи в поток, создания с basic_­stringbuf помощью a basic_­stringили вызова str(basic_­string) функции-члена. В случае вызова str(basic_­string) функции-члена все символы, инициализированные до вызова, теперь считаются неинициализированными (за исключением тех символов, которые повторно инициализированы новым basic_­string). В противном случае basic_­stringbuf объект не был создан ни в режиме ввода, ни в режиме вывода, и basic_­string возвращается нулевая длина .

void str(const basic_string<charT, traits, Allocator>& s);

Effects: Копирует содержимое s в basic_­stringbuf базовую последовательность символов и инициализирует входные и выходные последовательности в соответствии с mode.

Postconditions: Если mode & ios_­base​::​out не ноль, pbase() указывает на первый базовый символ и epptr() >= pbase() + s.size() удерживается; кроме того, если не mode & ios_­base​::​ate равно нулю, то pptr() == pbase() + s.size() имеет место, иначе pptr() == pbase() - нет true. Если не mode & ios_­base​::​in равно нулю, eback() указывает на первый базовый символ, и оба gptr() == eback() и egptr() == eback() + s.size() удерживаются.