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) | (since C++23) |
|
template
<
class
ROS
>
explicit basic_ispanstream ( ROS && r ) ; |
(2) | (since C++23) |
|
basic_ispanstream
(
basic_ispanstream
&&
rhs
)
;
|
(3) | (since C++23) |
|
basic_ispanstream
(
const
basic_ispanstream
&
)
=
delete
;
|
(4) | (since C++23) |
Constructs a new
basic_ispanstream
.
1)
Uses the storage referenced by
s
as initial underlying buffer of the wrapped
std::basic_spanbuf
device. The wrapped
std::basic_spanbuf
object is constructed as
basic_spanbuf
<
Char, Traits
>
(
s, mode
|
std::
ios_base
::
in
)
.
2)
Uses the storage referenced by
r
after converted to
std::
span
<
const
CharT
>
as initial underlying buffer of the wrapped
std::basic_spanbuf
device. The wrapped
std::basic_spanbuf
object is opened in mode
std::ios_base::in
. This overload participates in overload resolution only if
ROS
models
borrowed_range
,
std::
convertible_to
<
ROS,
std::
span
<
CharT
>>
is
false
, and
std::
convertible_to
<
ROS,
std::
span
<
const
CharT
>>
is
true
.
3)
Move constructor. Move constructs the
std::basic_istream
base subobject and the wrapped
std::basic_spanbuf
from those of
rhs
, and then calls
set_rdbuf
with the address of the wrapped
std::basic_spanbuf
in
*
this
to install it.
4)
Copy constructor is deleted.
basic_ispanstream
is not copyable.
Contents |
Parameters
| s | - | std::span referencing the storage to be use as initial underlying buffer of stream | ||||||||||||||||
| r | - |
borrowed_range
to be use as initial underlying buffer of stream
|
||||||||||||||||
| mode | - |
specifies stream open mode. Following constants and bit-wise OR between them may be used:
|
||||||||||||||||
| other | - |
another
basic_ispanstream
to be moved from
|
Exceptions
May throw implementation-defined exceptions.
Example
Run this code
#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); }
Output:
i=1, j=2, k=3, w=abc
See also
constructs a
basic_spanbuf
object
(public member function of
std::basic_spanbuf<CharT,Traits>
)
|