Spec-Zone.ru › C++

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 содержит четыре закрытых члена данных:

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

Примечания

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

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

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

Открытые функции-члены

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

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

underflow
[виртуальная]
читает символ из входной последовательности, не перемещая следующий указатель
(виртуальная защищённая функция-член)
pbackfail
[виртуальная]
перемещает указатель входной последовательности назад, чтобы вернуть символ во входной поток
(виртуальная защищённая функция-член)
overflow
[виртуальная]
добавляет символ в выходную последовательность; может перераспределить или первоначально выделить буфер, если он динамический и не заморожен
(виртуальная защищённая функция-член)
setbuf
[виртуальная]
пытается заменить контролируемую символьную последовательность массивом
(виртуальная защищённая функция-член)
seekoff
[виртуальная]
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию
(виртуальная защищённая функция-член)
seekpos
[виртуальная]
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию
(виртуальная защищённая функция-член)

Унаследовано от 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>)
Локали
pubimbue
изменяет связанную локаль и вызывает imbue()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
getloc
получает копию связанной локали
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Позиционирование
pubsetbuf
вызывает setbuf()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
pubseekoff
вызывает seekoff()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
pubseekpos
вызывает seekpos()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
pubsync
вызывает sync()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Область чтения
in_avail
получает количество символов, непосредственно доступных в области чтения
(открытая функция-член std::basic_streambuf<CharT,Traits>)
snextc
продвигает входную последовательность, а затем считывает один символ, не продвигая её повторно
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sbumpcstossc
(удалён в C++17)
считывает один символ из входной последовательности и продвигает последовательность
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sgetc
считывает один символ из входной последовательности, не продвигая последовательность
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sgetn
вызывает xsgetn()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Область записи
sputc
записывает один символ в область записи и продвигает следующий указатель
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sputn
вызывает xsputn()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Возврат символа
sputbackc
возвращает один символ во входную последовательность
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sungetc
перемещает следующий указатель во входной последовательности на одну позицию назад
(открытая функция-член std::basic_streambuf<CharT,Traits>)

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

(конструктор)
создаёт объект basic_streambuf
(защищённая функция-член)
operator=
(C++11)
заменяет объект basic_streambuf
(защищённая функция-член)
swap
(C++11)
обменивает местами два объекта basic_streambuf
(защищённая функция-член)
Локали
imbue
[виртуальная]
реагирует на изменение связанной локали
(виртуальная защищённая функция-член 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>)
Область чтения
showmanyc
[виртуальная]
получает, если это известно, количество символов, доступных для чтения в связанной входной последовательности
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
underflow
[виртуальная]
считывает символы из связанной входной последовательности в область чтения
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
uflow
[виртуальная]
считывает символы из связанной входной последовательности в область чтения и продвигает следующий указатель
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
xsgetn
[виртуальная]
считывает несколько символов из входной последовательности
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
ebackgptregptr
возвращает указатели на начало, текущий символ и конец области чтения
(защищённая функция-член)
gbump
продвигает следующий указатель во входной последовательности
(защищённая функция-член)
setg
перемещает указатели начала, следующего символа и конца входной последовательности
(защищённая функция-член)
Область записи
xsputn
[виртуальная]
записывает несколько символов в выходную последовательность
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
overflow
[виртуальная]
записывает символы из области записи в связанную выходную последовательность
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
pbasepptrepptr
возвращает указатели на начало, текущий символ и конец области записи
(защищённая функция-член)
pbump
продвигает следующий указатель выходной последовательности
(защищённая функция-член)
setp
перемещает указатели начала, следующего символа и конца выходной последовательности
(защищённая функция-член)
Возврат символа
pbackfail
[виртуальная]
возвращает символ во входную последовательность, при необходимости изменяя её
(виртуальная защищённая функция-член 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API