c++11 标准模板(STL)(std::basic |
您所在的位置:网站首页 › ofstream赋值 › c++11 标准模板(STL)(std::basic |
定义于头文件 template<class CharT, class Traits = std::char_traits > class basic_ios : public std::ios_base类 std::basic_ios 提供设施,以对拥有 std::basic_streambuf 接口的对象赋予接口。数个 std::basic_ios 对象能指涉一个实际的 std::basic_streambuf 对象。 继承图 还提供了两个对常见的字符类型的特化: 类型定义iosbasic_ioswiosbasic_ios 公开成员函数 构造对象 std::basic_ios::basic_iosprotected: basic_ios(); (1)public: explicit basic_ios( std::basic_streambuf* sb ); (2)private: basic_ios(const basic_ios&); (3)(C++11 前)public: basic_ios(const basic_ios& ) = delete; (C++11 起)构造新的 basic_ios 对象。 1) 默认构造函数。不初始化内部状态。必须在首次使用对象或析构函数前调用 init() ,否则行为未定义。 2) 以调用init(sb) 初始化内部状态。设置关联流缓冲为 sb 。 3) C++11 前复制构造函数声明为 private: 且不定义,而在 C++11 中声明为被删除: I/O 流非可复制构造 (CopyConstructible) 。 参数 sb-要关联的流缓冲析构对象 std::basic_ios::~basic_ios virtual ~basic_ios(); 销毁 basic_ios 对象。不进行 rdbuf 上的操作,不销毁它。 注意此析构函数为 virtual ,因为其基类析构函数 ios_base::~ios_base 为虚。 复制赋值运算符被删除 operator= 受保护成员函数 初始化一个默认构造的std::basic_ios std::basic_ios::initprotected: void init( std::basic_streambuf* sb ); 设置关联流缓冲为 sb 并初始化内部状态。 后置条件如下: 元素值rdbuf()sbtie()空指针rdstate()若 sb 不是空指针, 则为 goodbit ,否则为 badbitexceptions()goodbitflags()skipws | decwidth()0precision()6fill()widen(' ')getloc()std::locale() 所返回的值的副本此成员函数为受保护:一旦知晓实际缓冲区类型,则它为派生流类 std::basic_istream 和 std::basic_ostream 的构造函数所调用。直至调用此函数前,默认构造的 std::basic_ios 每个成员函数(包括析构函数)都引发未定义行为。注意 basic_ios 是虚基类,从而其构造函数不为直接派生类的构造函数所调用,此乃二阶段初始化为必须的原因。 参数 sb-要关联到的流缓冲从另一 std::basic_ios 移动,除了 rdbuf std::basic_ios::move protected: void move( basic_ios& other ); (C++11 起)protected: void move( basic_ios&& other ); (C++11 起)以 other 的状态替换当前状态,除了关联的 rdbuf 。调用后 other 在合法,但未指定的状态。调用此函数后, rdbuf() 返回 NULL ,而 other.rdbuf() 返回与调用前相同的值,且 other.tie() 返回 0 。 此成员函数受保护:它为导出流类 std::basic_ostream 和 std::basic_istream 的受保护移动构造函数所调用,进而为进一步导出流类,如 std::basic_ofstream 的公开移动构造函数所调用,它们知道如何正确地移动关联流缓冲。 参数 other-转移状态来源的 basic_ios 对象 返回值(无) 与另一 std::basic_ios 交换,除了 rdbuf std::basic_ios::swapprotected: void swap( basic_ios& other ) noexcept; (C++11 起)交换 *this 与 other 的状态,除了关联的 rdbuf 对象。 rdbuf() 和 other.rdbuf() 返回与调用前相同的值。 此 swap 函数受保护:它为导出的流类,如 std::basic_ofstream 或 std::basic_istringstream 的成员函数所调用,它们知道如何正确地交换关联的流缓冲。 参数 other-要与之交换状态的 basic_ios 对象 返回值(无) 替换 rdbuf 而不清除其错误状态 std::basic_ios::set_rdbufprotected: void set_rdbuf( std::basic_streambuf* sb ); 设置关联流缓冲为 sb 而不清除错误状态。 此成员函数受保护:它为导出流,如 std::basic_ofstream 或 std::basic_istringstream 的移动构造函数所调用,作为构造基类和移动流缓冲后的最终步骤:只有最终导出流类知道如何正确移动流缓冲,但需要令 std::basic_ios 意识到流的新位置,使得其公开成员函数能访问它。 参数 sb-要访问的流缓冲 返回值(无) 异常(无)
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |