Scroll to navigation

std::basic_ispanstream::basic_ispanstream(3) C++ Standard Libary std::basic_ispanstream::basic_ispanstream(3)

NAME

std::basic_ispanstream::basic_ispanstream - std::basic_ispanstream::basic_ispanstream

Synopsis


explicit basic_ispanstream( std::span<CharT> s,
std::ios_base::openmode mode = (1) (since C++23)
std::ios_base::in );
template< class ROS > (2) (since C++23)
explicit basic_ispanstream( ROS&& r );
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.

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
specifies stream open mode. Following constants and bit-wise OR between them
may be used:


Constant Explanation
app seek to the end of stream before each write
mode - binary open in binary mode
in open for reading
out open for writing
trunc discard the contents of the stream when opening
ate seek to the end of stream immediately after open
noreplace (C++23) open in exclusive mode
other - another basic_ispanstream to be moved from

Exceptions


May throw implementation-defined exceptions.

Example


This section is incomplete
Reason: no example

See also


constructor constructs a basic_spanbuf object
(C++23) (public member function of std::basic_spanbuf<CharT,Traits>)

Category:


* Todo no example

2024.06.10 http://cppreference.com