Spec-Zone.ru › C++

std::basic_stringbuf

Определён в заголовочном файле <sstream>
template<
    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>
> class basic_stringbuf
    : public std::basic_streambuf<CharT, Traits>

std::basic_stringbuf — это std::basic_streambuf, связанная последовательность символов которого представляет собой расположенную в памяти последовательность произвольных символов, которую можно инициализировать из экземпляра std::basic_string или предоставить в виде такого экземпляра.

Типичные реализации std::basic_stringbuf содержат объект типа std::basic_string или эквивалентный контейнер последовательности с возможностью изменения размера непосредственно в качестве члена данных и используют его как управляемую последовательность символов (массив, на который указывают шесть указателей из std::basic_streambuf), так и связанную последовательность символов (источник символов для всех операций ввода и место назначения для вывода).

Кроме того, типичная реализация содержит член данных типа std::ios_base::openmode, указывающий режим ввода-вывода связанного потока (только ввод, только вывод, ввод-вывод, позиционирование в конце и т. д.).

Если overflow() использует стратегию избыточного выделения памяти, может храниться дополнительный указатель на наибольшую достигнутую позицию, отслеживающий последний инициализированный символ.

(начиная с C++11)

Для распространённых типов символов предусмотрено несколько псевдонимов типов:

Определены в заголовочном файле <sstream>
Тип Определение
std::stringbuf std::basic_stringbuf<char>
std::wstringbuf std::basic_stringbuf<wchar_t>

Типы-члены

Тип-член Определение
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
allocator_type Allocator

Члены, используемые только для пояснения

buf объект типа std::basic_string<CharT,Traits,Allocator>, используемый в качестве базового буфера
(объект-член, используемый только для пояснения*)
mode std::ios_base::openmode связанного потока
(объект-член, используемый только для пояснения*)
init_buf_ptrs
инициализирует последовательности ввода и вывода
(функция-член, используемая только для пояснения*)

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

(конструктор)
создаёт объект basic_stringbuf
(открытая функция-член)
operator=
(C++11)
присваивает объект basic_stringbuf
(открытая функция-член)
swap
(C++11)
обменивает местами два объекта basic_stringbuf
(открытая функция-член)
(деструктор)
[виртуальный] (неявно объявлен)
уничтожает объект basic_stringbuf и содержащуюся в нём строку
(виртуальная открытая функция-член)
str
заменяет связанную строку символов или получает её копию
(открытая функция-член)
get_allocator
(C++20)
получает копию аллокатора, связанного с внутренним контейнером последовательности
(открытая функция-член)
view
(C++20)
получает представление базовой последовательности символов
(открытая функция-член)

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

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

Функции, не являющиеся членами

std::swap(std::basic_stringbuf)
(C++11)
специализирует алгоритм std::swap
(шаблон функции)

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

Spec-Zone.ru

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