Namespaces
Variants

std::basic_ispanstream<CharT,Traits>:: basic_ispanstream

From cppreference.net

explicit basic_ispanstream ( std:: span < CharT > s, std:: ios_base :: openmode mode =
std:: ios_base :: in ) ;
(1) (начиная с C++23)
template < class ROS >
explicit basic_ispanstream ( ROS && r ) ;
(2) (начиная с C++23)
basic_ispanstream ( basic_ispanstream && rhs ) ;
(3) (начиная с C++23)
basic_ispanstream ( const basic_ispanstream & ) = delete ;
(4) (начиная с C++23)

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

1) Использует хранилище, на которое ссылается s , в качестве начального базового буфера обёрнутого устройства std::basic_spanbuf . Обёрнутый объект std::basic_spanbuf конструируется как basic_spanbuf < Char, Traits > ( s, mode | std:: ios_base :: in ) .
2) Использует хранилище, на которое ссылается r после преобразования в std:: span < const CharT > в качестве начального внутреннего буфера обёрнутого устройства std::basic_spanbuf . Обёрнутый объект std::basic_spanbuf открывается в режиме std::ios_base::in . Эта перегрузка участвует в разрешении перегрузки только если ROS моделирует borrowed_range , std:: convertible_to < ROS, std:: span < CharT >> равно false , и std:: convertible_to < ROS, std:: span < const CharT >> равно true .
3) Конструктор перемещения. Перемещающее конструирует базовый подобъект std::basic_istream и обёрнутый std::basic_spanbuf из соответствующих объектов rhs , после чего вызывает set_rdbuf с адресом обёрнутого std::basic_spanbuf в * this для его установки.
4) Конструктор копирования удален. basic_ispanstream не поддерживает копирование.

Содержание

Параметры

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

Исключения

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

Пример

#include <print>
#include <spanstream>
#include <string>
int main()
{
    std::ispanstream is("1 2 3 abc");
    int i, j, k;
    std::string w;
    is >> i >> j >> k >> w;
    std::print("i={}, j={}, k={}, w={}", i, j, k, w);
}

Вывод:

i=1, j=2, k=3, w=abc

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

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