Namespaces
Variants

std::basic_ospanstream<CharT,Traits>:: basic_ospanstream

From cppreference.net

explicit basic_ospanstream ( std:: span < CharT > s, std:: ios_base :: openmode mode =
std:: ios_base :: out ) ;
(1) (начиная с C++23)
basic_ospanstream ( basic_ospanstream && rhs ) ;
(2) (начиная с C++23)
basic_ospanstream ( const basic_ospanstream & ) = delete ;
(3) (начиная с C++23)

Создает новый basic_ospanstream .

1) Использует хранилище, на которое ссылается s , в качестве начального внутреннего буфера обёрнутого устройства std::basic_spanbuf . Обёрнутый объект std::basic_spanbuf конструируется как basic_spanbuf < Char, Traits > ( s, mode | std:: ios_base :: out ) .
2) Конструктор перемещения. Перемещающее конструирует базовый подобъект std::basic_ostream и обёрнутый объект std::basic_spanbuf из соответствующих объектов rhs , после чего вызывает set_rdbuf с адресом обёрнутого std::basic_spanbuf в * this для его установки.
3) Конструктор копирования удален. basic_ospanstream не поддерживает копирование.

Содержание

Параметры

s - std::span ссылающийся на хранилище, которое будет использоваться в качестве начального базового буфера потока
mode - определяет режим открытия потока. Могут использоваться следующие константы и их побитовое ИЛИ:
Константа Объяснение
app переход в конец потока перед каждой записью
binary открытие в бинарном режиме
in открытие для чтения
out открытие для записи
trunc очистка содержимого потока при открытии
ate переход в конец потока сразу после открытия
noreplace (C++23) открытие в эксклюзивном режиме
other - другой basic_ospanstream для перемещения

Исключения

Может выбрасывать исключения, определяемые реализацией.

Пример

#include <array>
#include <iostream>
#include <spanstream>
int main()
{
    std::array<char, 10> buffer;
    std::ospanstream os(buffer);
    os << "i=" << 1 << " j=" << 2 << '\n' << std::ends;
    std::cout << buffer.data();
}

Вывод:

i=1 j=2

Смотрите также

создаёт объект basic_spanbuf
(публичная функция-член std::basic_spanbuf<CharT,Traits> )