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, указывающий режим ввода-вывода связанного потока (только ввод, только вывод, ввод-вывод, позиционирование в конце и т. д.).
| Если | (начиная с 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 связанного потока(объект-член, используемый только для пояснения*) |
| инициализирует последовательности ввода и вывода (функция-член, используемая только для пояснения*) |
Открытые функции-члены
создаёт объект basic_stringbuf (открытая функция-член) |
|
|
(C++11) | присваивает объект basic_stringbuf (открытая функция-член) |
|
(C++11) | обменивает местами два объекта basic_stringbuf (открытая функция-член) |
|
(деструктор)
[виртуальный] (неявно объявлен) | уничтожает объект basic_stringbuf и содержащуюся в нём строку (виртуальная открытая функция-член) |
| заменяет связанную строку символов или получает её копию (открытая функция-член) |
|
|
(C++20) | получает копию аллокатора, связанного с внутренним контейнером последовательности (открытая функция-член) |
|
(C++20) | получает представление базовой последовательности символов (открытая функция-член) |
Защищённые функции-члены
|
[виртуальная] | возвращает следующий символ, доступный в последовательности ввода (виртуальная защищённая функция-член) |
|
[виртуальная] | возвращает символ в последовательность ввода (виртуальная защищённая функция-член) |
|
[виртуальная] | добавляет символ в последовательность вывода (виртуальная защищённая функция-член) |
|
[виртуальная] | пытается заменить управляемую последовательность символов массивом (виртуальная защищённая функция-член) |
|
[виртуальная] | перемещает следующий указатель в последовательности ввода, последовательности вывода или обеих последовательностях, используя относительную адресацию (виртуальная защищённая функция-член) |
|
[виртуальная] | перемещает следующий указатель в последовательности ввода, последовательности вывода или обеих последовательностях, используя абсолютную адресацию (виртуальная защищённая функция-член) |
Функции, не являющиеся членами
|
(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>) |
Локали |
|
изменяет связанную локаль и вызывает 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/basic_stringbuf