Namespaces
Variants

std:: strstreambuf

From cppreference.net
< cpp ‎ | io
Определено в заголовочном файле <strstream>
class strstreambuf : public std:: basic_streambuf < char >
(устарело в C++98)
(удалено в C++26)

std::strstreambuf является std::basic_streambuf , чья связанная символьная последовательность представляет собой массив символов, который может быть константным (например, строковым литералом), изменяемым, но не динамическим (например, массивом в стеке), или динамическим. В последнем случае std::strstreambuf может быть разрешено перераспределять массив по мере необходимости для размещения выходных данных (например, путем вызова delete [ ] и new [ ] или пользовательских функций).

Типичная реализация std::strstreambuf содержит четыре приватных члена данных:

1) состояние буфера, тип битовой маски, который может представлять любую комбинацию из четырех значений: "allocated" (деструктор выполнит освобождение памяти), "constant" (вывод запрещен), "dynamic" (вывод может вызвать перераспределение памяти) или "frozen" (освобождение и перераспределение памяти запрещены)
2) выделенный размер буфера (начало буфера не требует специального члена данных, оно может храниться в унаследованном указателе eback() )
3) указатель на предоставленную пользователем функцию выделения памяти
4) указатель на предоставляемую пользователем функцию освобождения памяти.

Содержание

Примечания

После любого вызова str() для потока с динамическим буфером требуется вызов freeze(false) чтобы позволить деструктору strstreambuf освободить буфер при необходимости.

strstreambuf устарел начиная с C++98 и удалён начиная с C++26 . Рекомендуемой заменой является std::spanbuf (начиная с C++23) .

Функции-члены

Публичные функции-члены

создает объект strstreambuf
(публичная функция-член)
[virtual]
уничтожает объект strstreambuf , опционально освобождая массив символов
(виртуальная публичная функция-член)
устанавливает/снимает замороженное состояние буфера
(публичная функция-член)
помечает буфер замороженным и возвращает указатель на начало входной последовательности
(публичная функция-член)
возвращает разницу между следующим указателем и указателем начала в выходной последовательности: количество записанных символов
(публичная функция-член)

Защищенные функции-члены

[virtual]
читает символ из входной последовательности без перемещения следующего указателя
(виртуальная защищенная функция-член)
[virtual]
откатывает входную последовательность для возврата символа
(виртуальная защищенная функция-член)
[virtual]
добавляет символ в выходную последовательность, может перераспределить или первоначально выделить буфер, если он динамический и не заморожен
(виртуальная защищенная функция-член)
[virtual]
пытается заменить управляемую последовательность символов массивом
(виртуальная защищенная функция-член)
[virtual]
перемещает следующий указатель во входной последовательности, выходной последовательности или обеих, используя относительную адресацию
(виртуальная защищенная функция-член)
[virtual]
перемещает следующий указатель во входной последовательности, выходной последовательности или обеих, используя абсолютную адресацию
(виртуальная защищенная функция-член)

Унаследовано от 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

Функции-члены

[virtual]
уничтожает объект 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 объекта
(защищённая функция-член)
Локали
[virtual]
реагирует на изменение связанной локали
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
Позиционирование
[virtual]
заменяет буфер пользовательским массивом, если разрешено
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
синхронизирует буферы с ассоциированной последовательностью символов
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
Получить площадь
[virtual]
получает количество символов, доступных для ввода в связанной входной последовательности, если известно
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
читает символы из связанной входной последовательности в область получения
(виртуальная защищенная функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
читает символы из связанной входной последовательности в область получения и перемещает указатель следующего символа
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
считывает несколько символов из входной последовательности
(виртуальная защищенная функция-член std::basic_streambuf<CharT,Traits> )
возвращает указатель на начало, текущий символ и конец области получения
(защищённая функция-член)
перемещает указатель следующего элемента во входной последовательности
(защищенная функция-член)
переставляет указатели начала, следующего и конца входной последовательности
(защищенная функция-член)
Область размещения
[virtual]
записывает несколько символов в выходную последовательность
(виртуальная защищенная функция-член std::basic_streambuf<CharT,Traits> )
[virtual]
записывает символы в связанную выходную последовательность из области вывода
(виртуальная защищенная функция-член std::basic_streambuf<CharT,Traits> )
возвращает указатель на начало, текущий символ и конец области вывода
(защищённая функция-член)
перемещает указатель следующего элемента выходной последовательности
(защищённая функция-член)
изменяет позиции указателей начала, следующего и конца выходной последовательности
(защищённая функция-член)
Putback
[virtual]
помещает символ обратно во входную последовательность, возможно изменяя входную последовательность
(виртуальная защищенная функция-член std::basic_streambuf<CharT,Traits> )