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) | (seit C++23) |
|
template
<
class
ROS
>
explicit basic_ispanstream ( ROS && r ) ; |
(2) | (seit C++23) |
|
basic_ispanstream
(
basic_ispanstream
&&
rhs
)
;
|
(3) | (seit C++23) |
|
basic_ispanstream
(
const
basic_ispanstream
&
)
=
delete
;
|
(4) | (seit C++23) |
Konstruiert einen neuen
basic_ispanstream
.
1)
Verwendet den durch
s
referenzierten Speicher als initialen zugrundeliegenden Puffer des umschlossenen
std::basic_spanbuf
-Geräts. Das umschlossene
std::basic_spanbuf
-Objekt wird konstruiert als
basic_spanbuf
<
Char, Traits
>
(
s, mode
|
std::
ios_base
::
in
)
.
2)
Verwendet den Speicher, auf den
r
verweist, nach der Konvertierung zu
std::
span
<
const
CharT
>
als anfänglichen zugrundeliegenden Puffer des umschlossenen
std::basic_spanbuf
-Geräts. Das umschlossene
std::basic_spanbuf
-Objekt wird im Modus
std::ios_base::in
geöffnet. Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
ROS
das Konzept
borrowed_range
modelliert,
std::
convertible_to
<
ROS,
std::
span
<
CharT
>>
false
ist und
std::
convertible_to
<
ROS,
std::
span
<
const
CharT
>>
true
ist.
3)
Move-Konstruktor. Bewegt-konstruiert das
std::basic_istream
Basis-Subobjekt und den eingepackten
std::basic_spanbuf
von denen des
rhs
, und ruft dann
set_rdbuf
mit der Adresse des eingepackten
std::basic_spanbuf
in
*
this
auf, um es zu installieren.
4)
Copy-Konstruktor ist gelöscht.
basic_ispanstream
ist nicht kopierbar.
Inhaltsverzeichnis |
Parameter
| s | - | std::span referenziert den Speicher, der als anfänglicher zugrundeliegender Puffer des Streams verwendet werden soll | ||||||||||||||||
| r | - |
borrowed_range
soll als anfänglicher zugrundeliegender Puffer des Streams verwendet werden
|
||||||||||||||||
| mode | - |
gibt den Stream-Öffnungsmodus an. Folgende Konstanten und bitweises ODER zwischen ihnen können verwendet werden:
|
||||||||||||||||
| other | - |
ein weiterer
basic_ispanstream
, von dem verschoben werden soll
|
Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
Beispiel
Diesen Code ausführen
#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); }
Ausgabe:
i=1, j=2, k=3, w=abc
Siehe auch
Konstruiert ein
basic_spanbuf
Objekt
(öffentliche Elementfunktion von
std::basic_spanbuf<CharT,Traits>
)
|