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) | (начиная с C++11) |
|
protected
:
basic_iostream ( basic_iostream && other ) ; |
(3) | (начиная с C++11) |
Создает новый объект потока.
1)
Инициализируется с помощью streambuf
sb
. Базовые классы инициализируются как
basic_istream
<
CharT,Traits
>
(
sb
)
и
basic_ostream
<
CharT,Traits
>
(
sb
)
. После вызова
rdbuf
(
)
==
sb
и
gcount
(
)
==
0
.
2)
Копирующее конструирование не разрешено.
3)
Конструктор перемещения: перемещающе конструирует первый базовый класс
basic_istream
как
basic_istream
<
CharT,Traits
>
(
std
::
move
(
rhs
)
)
;
, который в свою очередь перемещающе конструирует и инициализирует виртуальную базу
std::basic_ios
. Инициализация другого базового класса,
basic_ostream
, определяется реализацией (например, может быть добавлен защищенный конструктор по умолчанию в
std::basic_ostream
, который ничего не делает), поскольку перемещающее конструирование не может использовать
rhs
дважды. Этот конструктор перемещения защищен: он вызывается конструкторами перемещения производных потоковых классов
std::basic_fstream
и
std::basic_stringstream
до того, как они перемещающе сконструируют и ассоциируют потоковый буфер.
Параметры
| sb | - | streambuf для инициализации |
| other | - | другой поток для инициализации |
Смотрите также
|
(C++11)
|
перемещает присваивает другой
basic_iostream
(защищённая функция-член) |