std:: basic_stringbuf
|
Определено в заголовке
<sstream>
|
||
|
template
<
class
CharT,
|
||
std::basic_stringbuf
является
std::basic_streambuf
, чья связанная символьная последовательность представляет собой резидентную в памяти последовательность произвольных символов, которая может быть инициализирована из экземпляра
std::basic_string
или представлена в виде такого экземпляра.
Типичные реализации
std::basic_stringbuf
содержат объект типа
std::basic_string
или эквивалентный изменяемый контейнер последовательности непосредственно как член данных и используют его как в качестве управляемой последовательности символов (массива, на который указывают шесть указателей
std::basic_streambuf
), так и в качестве ассоциированной последовательности символов (источника символов для всех операций ввода и цели для вывода).
Кроме того, типичная реализация содержит элемент данных типа std::ios_base::openmode для указания режима ввода-вывода связанного потока (только ввод, только вывод, ввод/вывод, в конце и т.д.).
|
Если в функции overflow() используется стратегия избыточного выделения памяти, может сохраняться дополнительный указатель верхнего уровня для отслеживания последнего инициализированного символа. |
(since C++11) |
Предоставлены несколько typedef для распространённых символьных типов:
|
Определено в заголовочном файле
<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
(публичная функция-член) |
|
(destructor)
[virtual]
(implicitly declared)
|
уничтожает объект
basic_stringbuf
и содержащуюся в нем строку
(виртуальная публичная функция-член) |
|
заменяет или получает копию связанной строки символов
(публичная функция-член) |
|
|
(C++20)
|
получает копию аллокатора, связанного с внутренним контейнером последовательности
(публичная функция-член) |
|
(C++20)
|
получает представление (view) базовой последовательности символов
(публичная функция-член) |
Защищенные функции-члены
|
[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>
)
|
|
возвращает указатель на начало, текущий символ и конец области вывода
(защищённая функция-член) |
|
|
перемещает указатель следующего элемента выходной последовательности
(защищённая функция-член) |
|
|
изменяет позиции указателей начала, следующего и конца выходной последовательности
(защищенная функция-член) |
|
Putback |
|
|
[virtual]
|
возвращает символ обратно во входную последовательность, возможно изменяя входную последовательность
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|