std::basic_ios::copyfmt
性病:基本[医]IOS::Copyfmt
basic_ios& copyfmt(const basic_ios& other | | |
---|
复制流的状态。other
进*this
.这是按下列顺序进行的:
1%29次回电,每次由register_callback()
过路erase_event
作为参数
2%29拷贝所有成员对象other
到*this
除了rdstate()
,异常掩码,以及rdbuf()
特别是,复制区域设置、格式标志、数组的内容。std::ios_base::iword
和std::ios_base::pword
%28但不是iword
和pword
指针本身(%29)、回调和绑定流。
3%29次回电,每次由register_callback()
过路copyfmt_event
作为参数
4%29拷贝异常掩码other
到*this
好像通过打电话exceptions(other.exceptions())
参数
other | - | another stream to use as source |
---|
返回值
*this
...
注记
中的指针指向的用户定义对象可以使用第二次回调来进行深度复制。std::ios_base::pword
...
copyfmt()
可用于保存和恢复流的状态。Boost提供了一个更细粒度的Io州储户图书馆也有同样的用途。
例
使ofstream对象“out”的行为与std::cout完全相同,包括格式设置,将%28%29绑定到std::CIN,等等。
二次
#include <iostream>
#include <fstream>
int main()
{
std::ofstream out;
out.copyfmt(std::cout // copy everything except rdstate and rdbuf
out.clear(std::cout.rdstate() // copy rdstate
out.basic_ios<char>::rdbuf(std::cout.rdbuf() // share the buffer
out << "Hello, world\n";
}
二次
产出:
二次
Hello, world
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。