std::strstreambuf
Определён в заголовочном файле <strstream> | ||
|---|---|---|
class strstreambuf : public std::basic_streambuf<char> | (устарел в C++98) (удалён в C++26) |
std::strstreambuf — это std::basic_streambuf, связанная символьная последовательность которого представляет собой массив символов, который может быть константным (например, строковый литерал), изменяемым, но не динамическим (например, массив, выделенный в стеке), или динамическим; в последнем случае std::strstreambuf может быть разрешено перераспределять массив при необходимости для размещения выходных данных (например, вызывая delete[] и new[] или предоставленные пользователем функции).
Типичная реализация std::strstreambuf содержит четыре закрытых члена данных:
eback())Примечания
После любого вызова str() для потока с динамическим буфером требуется вызов freeze(false), чтобы при необходимости деструктор strstreambuf мог освободить буфер.
strstreambuf устарел начиная с C++98 и удалён начиная с C++26. Рекомендуемой заменой является std::spanbuf(начиная с C++23).
Функции-члены
Открытые функции-члены |
|
создаёт объект strstreambuf (открытая функция-член) |
|
|
[виртуальный] | уничтожает объект strstreambuf, при необходимости освобождая массив символов (виртуальная открытая функция-член) |
| устанавливает или сбрасывает состояние заморозки буфера (открытая функция-член) |
|
| замораживает буфер и возвращает указатель на начало входной последовательности (открытая функция-член) |
|
| возвращает разность между следующим указателем и указателем на начало выходной последовательности: количество записанных символов (открытая функция-член) |
|
Защищённые функции-члены |
|
|
[виртуальная] | читает символ из входной последовательности, не перемещая следующий указатель (виртуальная защищённая функция-член) |
|
[виртуальная] | перемещает указатель входной последовательности назад, чтобы вернуть символ во входной поток (виртуальная защищённая функция-член) |
|
[виртуальная] | добавляет символ в выходную последовательность; может перераспределить или первоначально выделить буфер, если он динамический и не заморожен (виртуальная защищённая функция-член) |
|
[виртуальная] | пытается заменить контролируемую символьную последовательность массивом (виртуальная защищённая функция-член) |
|
[виртуальная] | перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию (виртуальная защищённая функция-член) |
|
[виртуальная] | перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию (виртуальная защищённая функция-член) |
Унаследовано от std::basic_streambuf
Типы-члены
| Тип-член | Определение |
|---|---|
char_type |
CharT |
traits_type |
Traits; программа некорректна, если Traits::char_type не является CharT. |
int_type |
Traits::int_type |
pos_type |
Traits::pos_type |
off_type |
Traits::off_type |
Функции-члены
|
[виртуальный] | уничтожает объект basic_streambuf (виртуальная открытая функция-член std::basic_streambuf<CharT,Traits>) |
Локали |
|
изменяет связанную локаль и вызывает imbue() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
| получает копию связанной локали (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Позиционирование |
|
вызывает setbuf() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает seekoff() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает seekpos() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает sync() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Область чтения |
|
| получает количество символов, непосредственно доступных в области чтения (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
| продвигает входную последовательность, а затем считывает один символ, не продвигая её повторно (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
|
(удалён в C++17) | считывает один символ из входной последовательности и продвигает последовательность (открытая функция-член std::basic_streambuf<CharT,Traits>) |
| считывает один символ из входной последовательности, не продвигая последовательность (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает xsgetn() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Область записи |
|
| записывает один символ в область записи и продвигает следующий указатель (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает xsputn() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Возврат символа |
|
| возвращает один символ во входную последовательность (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
| перемещает следующий указатель во входной последовательности на одну позицию назад (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Защищённые функции-члены
создаёт объект basic_streambuf (защищённая функция-член) |
|
|
(C++11) | заменяет объект basic_streambuf (защищённая функция-член) |
|
(C++11) | обменивает местами два объекта basic_streambuf (защищённая функция-член) |
Локали |
|
|
[виртуальная] | реагирует на изменение связанной локали (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Позиционирование |
|
|
[виртуальная] | заменяет буфер предоставленным пользователем массивом, если это разрешено (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | синхронизирует буферы со связанной символьной последовательностью (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Область чтения |
|
|
[виртуальная] | получает, если это известно, количество символов, доступных для чтения в связанной входной последовательности (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | считывает символы из связанной входной последовательности в область чтения (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | считывает символы из связанной входной последовательности в область чтения и продвигает следующий указатель (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | считывает несколько символов из входной последовательности (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
| возвращает указатели на начало, текущий символ и конец области чтения (защищённая функция-член) |
|
| продвигает следующий указатель во входной последовательности (защищённая функция-член) |
|
| перемещает указатели начала, следующего символа и конца входной последовательности (защищённая функция-член) |
|
Область записи |
|
|
[виртуальная] | записывает несколько символов в выходную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальная] | записывает символы из области записи в связанную выходную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
| возвращает указатели на начало, текущий символ и конец области записи (защищённая функция-член) |
|
| продвигает следующий указатель выходной последовательности (защищённая функция-член) |
|
| перемещает указатели начала, следующего символа и конца выходной последовательности (защищённая функция-член) |
|
Возврат символа |
|
|
[виртуальная] | возвращает символ во входную последовательность, при необходимости изменяя её (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/strstreambuf