std::basic_ispanstream<CharT,Traits>:: basic_ispanstream
From cppreference.net
<
cpp
|
io
|
basic ispanstream
|
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 | - |
определяет режим открытия потока. Могут использоваться следующие константы и их побитовое ИЛИ:
|
||||||||||||||||
| 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>
)
|