C++ 輸出流庫 - 哨兵



描述

它用於準備輸出流。所有執行輸出操作的成員函式都會自動構造此類的一個物件,然後對其進行評估(如果未設定任何狀態標誌,則返回 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; − 當評估物件時,它返回一個 bool 值,指示哨兵建構函式是否成功執行了所有任務:如果在構造過程的某個點設定了內部錯誤標誌,則此函式始終對該物件返回 false。

ostream.htm
廣告