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 | режим связанного потока (член объекта, используемый только для иллюстрации*) |
| инициализирует последовательности ввода и вывода (член функции, используемый только для иллюстрации*) |
Публичные члены-функции
строит объект basic_stringbuf (публичная функция-член) |
|
|
(C++11) | присваивает объект basic_stringbuf (публичная функция-член) |
|
(C++11) | меняет местами два объекта basic_stringbuf (публичная функция-член) |
| (деструктор)
[virtual] (неявное объявление) | уничтожает объект basic_stringbuf и строку, которую он содержит (виртуальная публичная функция-член) |
| заменяет или получает копию связанной строки символов (публичная функция-член) |
|
|
(C++20) | получает копию аллокатора, связанного с внутренним контейнером последовательности (публичная функция-член) |
|
(C++20) | получает представление над подлежащей последовательностью символов (публичная функция-член) |
Защищенные члены-функции
|
[virtual] | возвращает следующий доступный символ в последовательности ввода (виртуальная защищенная функция-член) |
|
[virtual] | возвращает символ обратно в последовательность ввода (виртуальная защищенная функция-член) |
|
[virtual] | добавляет символ в последовательность вывода (виртуальная защищенная функция-член) |
|
[virtual] | пытается заменить управляемую последовательность символов массивом (виртуальная защищенная функция-член) |
|
[virtual] | перемещает указатель на следующий символ в последовательности ввода, вывода или обоих с использованием относительной адресации (виртуальная защищенная функция-член) |
|
[virtual] | перемещает указатель на следующий символ в последовательности ввода, вывода или обоих с использованием абсолютной адресации (виртуальная защищенная функция-член) |
Функции, не являющиеся членами
|
(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 |
Члены-функции
|
[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>) |
| возвращает указатель на начало, текущий символ и конец области вывода (защищённый член-функция) |
|
| перемещает указатель следующего символа в выходной последовательности (защищённый член-функция) |
|
| устанавливает указатели начала, следующего и конца выходной последовательности (защищённый член-функция) |
|
Возврат |
|
|
[virtual] | возвращает символ в входную последовательность, возможно изменяя входную последовательность (виртуальная защищённый член-функция std::basic_streambuf<CharT,Traits>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_stringbuf