std:: basic_spanbuf
|
Определено в заголовочном файле
<spanstream>
|
||
|
template
<
class
CharT,
|
(начиная с C++23) | |
std::basic_spanbuf
является
std::basic_streambuf
, чья связанная символьная последовательность представляет собой резидентную в памяти последовательность произвольных символов, которая может быть инициализирована из или представлена в виде экземпляра
std::
span
<
CharT
>
.
std::basic_spanbuf
выполняет ввод-вывод на фиксированном буфере, и поэтому не пытается получить новый буфер при исчерпании основного буфера.
Предоставлены несколько typedef для распространённых символьных типов:
|
Определено в заголовке
<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)
|
Объект
std::ios_base::openmode
сохраняющий режим открытия.
( демонстрационный член-объект* ) |
buf
(private)
|
Объект
std::
span
<
CharT
>
ссылающийся на базовый буфер.
( демонстрационный член-объект* ) |
Функции-члены
Публичные функции-члены |
|
создает объект
basic_spanbuf
(публичная функция-член) |
|
|
(destructor)
[virtual]
|
уничтожает объект
basic_spanbuf
(виртуальная публичная функция-член) |
присваивает объект
basic_spanbuf
(публичная функция-член) |
|
обменивает два объекта
basic_spanbuf
(публичная функция-член) |
|
|
получает или инициализирует базовый буфер в соответствии с режимом
(публичная функция-член) |
|
Защищенные функции-члены |
|
|
[virtual]
|
пытается заменить управляемую последовательность символов массивом
(виртуальная защищенная функция-член) |
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или обеих, используя относительную адресацию
(виртуальная защищенная функция-член) |
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или обеих, используя абсолютную адресацию
(виртуальная защищенная функция-член) |
Функции, не являющиеся членами класса
|
(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>
)
|
Локали |
|
|
изменяет связанную локаль и вызывает
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>
)
|
Примечания
std::basic_spanbuf
не владеет базовым буфером.
Программисты несут ответственность за обеспечение того, чтобы базовый буфер находился в пределах своего времени жизни при использовании объектом
std::basic_spanbuf
. Может потребоваться дополнительная синхронизация, если несколько потоков работают с одним и тем же базовым буфером через разные объекты
std::basic_spanbuf
.
| Макрос тестирования возможностей | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_spanstream
|
202106L
|
(C++23) |
std::spanbuf
,
std::spanstream
|
Смотрите также
|
реализует устройство необработанной строки
(шаблон класса) |
|
|
(устарело в C++98)
(удалено в C++26)
|
реализует устройство необработанного массива символов
(класс) |