C++ Ostream 库 - sentry
描述
它用于为输出准备流。 所有执行输出操作的成员函数都会自动构造此类的对象,然后对其求值(如果未设置状态标志,则返回 true)。仅当此对象的计算结果为 true 时,该函数才会尝试输出操作(否则,它会返回而不执行它)。 在返回之前,该函数销毁哨兵对象。
声明
以下是 std::basic_ostream::sentry 的声明。
C++98
class sentry { public: explicit sentry (basic_ostream& os); ~sentry(); operator bool() const; private: sentry (const sentry&); sentry& operator= (const sentry&); };
C++11
class sentry { public: explicit sentry (basic_ostream& os); ~sentry(); explicit operator bool() const; sentry (const sentry&) = delete; sentry& operator= (const sentry&) = delete; };
成员
explicit sentry (basic_istream& is, bool noskipws = false); − 为输出操作准备输出流,执行上述操作。
~sentry(); − 不执行任何操作(实现定义)。
explicit operator bool() const; − 评估对象时,它返回一个布尔值,指示哨兵构造函数是否成功执行其所有任务:如果在构造过程的某个时刻设置了内部错误标志,则此函数始终为该对象返回 false。