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)
使用流缓冲区
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
(受保护成员函数) |