std::basic_iostream<CharT,Traits>:: basic_iostream
From cppreference.net
<
cpp
|
io
|
basic iostream
|
explicit
basic_iostream
(
std::
basic_streambuf
<
CharT,Traits
>
*
sb
)
;
|
(1) | |
|
basic_iostream
(
const
basic_iostream
&
other
)
=
delete
;
|
(2) | (seit C++11) |
|
protected
:
basic_iostream ( basic_iostream && other ) ; |
(3) | (seit C++11) |
Konstruiert neues Stream-Objekt.
1)
Initialisiert mit streambuf
sb
. Die Basisklassen werden initialisiert als
basic_istream
<
CharT,Traits
>
(
sb
)
und
basic_ostream
<
CharT,Traits
>
(
sb
)
. Nach dem Aufruf gilt
rdbuf
(
)
==
sb
und
gcount
(
)
==
0
.
2)
Copy-Konstruktion ist nicht erlaubt.
3)
Move-Konstruktor: move-konstruiert die erste Basisklasse
basic_istream
als
basic_istream
<
CharT,Traits
>
(
std
::
move
(
rhs
)
)
;
, was wiederum die virtuelle Basis
std::basic_ios
move-konstruiert und initialisiert. Die Initialisierung der anderen Basis,
basic_ostream
, ist implementierungsdefiniert (z.B. könnte ein geschützter Standardkonstruktor zu
std::basic_ostream
hinzugefügt werden, der nichts tut), da die Move-Konstruktion
rhs
nicht zweimal verwenden kann. Dieser Move-Konstruktor ist geschützt: Er wird von den Move-Konstruktoren der abgeleiteten Stream-Klassen
std::basic_fstream
und
std::basic_stringstream
aufgerufen, bevor sie den Stream-Puffer move-konstruieren und assoziieren.
Parameter
| sb | - | Streambuf zur Initialisierung |
| other | - | Anderer Stream zur Initialisierung |
Siehe auch
|
(C++11)
|
weist ein anderes
basic_iostream
Objekt per Move-Operation zu (geschützte Elementfunktion) |