# std::basic_spanstream<CharT,Traits>::basic_spanstream

From cppreference.com
< cpp‎ | io‎ | basic spanstream

explicit basic_spanstream( std::span<CharT> s, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out ); | (1) | (since C++23)
basic_spanstream( basic_spanstream&& rhs ); | (2) | (since C++23)
basic_spanstream( const basic_spanstream& ) = delete; | (3) | (since C++23)

Constructs a new `basic_spanstream`.

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).
2) Move constructor. Move constructs the std::basic_iostream 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.
3) Copy constructor is deleted. `basic_spanstream` is not copyable.

### Parameters

s | - | std::span referencing the storage 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:
Constant | Explanation
`app` | seek to the end of stream before each write
`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_spanstream` 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 (public member function of `std::basic_spanbuf<CharT,Traits>`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_spanstream/basic_spanstream&oldid=130843"