Spec-Zone.ru › C++

std::basic_spanbuf

Определено в заголовке <spanstream>
template<
    class CharT,
    class Traits = std::char_traits<CharT>
> class basic_spanbuf
    : public std::basic_streambuf<CharT, Traits>
(с C++23)

std::basic_spanbuf является std::basic_streambuf, ассоциированная последовательность символов которой представляет собой расположенную в памяти последовательность произвольных символов, которая может быть инициализирована или доступна как экземпляр std::span<CharT>.

std::basic_spanbuf выполняет ввод-вывод в фиксированном буфере и, следовательно, не пытается получить новый буфер, когда основной буфер исчерпан.

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

Определено в заголовке <spanstream>
Тип Определение
std::spanbuf std::basic_spanbuf<char>
std::wspanbuf std::basic_spanbuf<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

Данные члены

Название члена Определение
mod (private) Переменная, записывающая режим открытия.
(член объекта для демонстрации*)
buf (private) std::span<CharT>, ссылающийся на основной буфер.
(член объекта для демонстрации*)

Члены-функции

Общедоступные члены-функции
(конструктор)
(C++23)
создаёт объект basic_spanbuf
(общедоступная функция-член)
(деструктор)
[виртуальный] (C++23)
уничтожает объект basic_spanbuf
(виртуальная общедоступная функция-член)
operator=
(C++23)
присваивает объект basic_spanbuf
(общедоступная функция-член)
swap
(C++23)
меняет местами два объекта basic_spanbuf
(общедоступная функция-член)
span
(C++23)
получает или инициализирует основной буфер в соответствии с режимом
(общедоступная функция-член)
Защищённые члены-функции
setbuf
[виртуальный] (C++23)
пытается заменить управляемую последовательность символов массивом
(виртуальная защищённая функция-член)
seekoff
[виртуальный] (C++23)
перепозиционирует указатель на следующий символ в входной последовательности, выходной последовательности или обеих, используя относительное адресование
(виртуальная защищённая функция-член)
seekpos
[виртуальный] (C++23)
перепозиционирует указатель на следующий символ в входной последовательности, выходной последовательности или обеих, используя абсолютное адресование
(виртуальная защищённая функция-член)

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

std::swap(std::basic_spanbuf)
(C++23)
специализирует алгоритм 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>)
Локали
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>)

Примечания

std::basic_spanbuf не владеет базовым буфером.

Программисты несут ответственность за обеспечение того, что базовый буфер существует во время использования объектом std::basic_spanbuf. Дополнительная синхронизация может потребоваться, если более одного потока оперируют одним базовым буфером с помощью различных объектов std::basic_spanbuf.

Макрос проверки наличия функции Значение Стандарт Функция
__cpp_lib_spanstream 202106L (C++23) std::spanbuf, std::spanstream

См. также

basic_stringbuf
реализует примитивное устройство строки
(шаблон класса)
strstreambuf
(устарело в C++98)
реализует примитивное устройство массива символов
(класс)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_spanbuf

Spec-Zone.ru

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