◐ Shell
clean mode source ↗

std::basic_ios - cppreference.com

提供: cppreference.com

<tbody> </tbody>

template< class CharT, class Traits = std::char_traits<CharT> > class basic_ios : public std::ios_base

クラス std::basic_iosstd::basic_streambuf インタフェースを持つオブジェクトとやりとりするための機能を提供します。 複数の std::basic_ios オブジェクトがひとつの実際の std::basic_streambuf オブジェクトを参照できます。

cpp/io/ios base

継承図

一般的な文字型に対して2つの特殊化が提供されます。

定義
ios basic_ios<char>
wios basic_ios<wchar_t>

メンバ型

メンバ型 定義
char_type CharT[edit]
traits_type TraitsTraits::char_typeCharT でない場合、プログラムは ill-formed です [edit]
int_type Traits::int_type[edit]
pos_type Traits::pos_type[edit]
off_type Traits::off_type[edit]

パブリックメンバ関数

オブジェクトを構築します
(パブリックメンバ関数) [edit]
オブジェクトを破棄します
(仮想パブリックメンバ関数) [edit]

operator=

コピー代入演算子は削除されています
(パブリックメンバ関数)
状態関数
エラーが発生していない (すなわち入出力操作が使用可能) かどうか調べます
(パブリックメンバ関数) [edit]
ファイル終端に達したかどうか調べます
(パブリックメンバ関数) [edit]
エラーが発生したかどうか調べます
(パブリックメンバ関数) [edit]
回復不可能なエラーが発生したかどうか調べます
(パブリックメンバ関数) [edit]
エラーが発生したかどうか調べます (std::basic_ios::fail の同義語です)
(パブリックメンバ関数) [edit]

(C++11未満)(C++11以上)

エラーが発生していないかどうか調べます (!fail() の同義語です)
(パブリックメンバ関数) [edit]
状態フラグを返します
(パブリックメンバ関数) [edit]
状態フラグを設定します
(パブリックメンバ関数) [edit]
状態フラグを変更します
(パブリックメンバ関数) [edit]
書式
書式情報をコピーします
(パブリックメンバ関数) [edit]
フィル文字を管理します
(パブリックメンバ関数) [edit]
その他
例外マスクを管理します
(パブリックメンバ関数) [edit]
ロケールを設定します
(パブリックメンバ関数) [edit]
紐付けられているストリームバッファを管理します
(パブリックメンバ関数) [edit]
結び付けられているストリームを管理します
(パブリックメンバ関数) [edit]
文字をナロー化します
(パブリックメンバ関数) [edit]
文字をワイド化します
(パブリックメンバ関数) [edit]

プロテクテッドメンバ関数

デフォルト構築された std::basic_ios を初期化します
(プロテクテッドメンバ関数) [edit]
rdbuf を除いて別の std::basic_ios にムーブします
(プロテクテッドメンバ関数) [edit]
rdbuf を除いて別の std::basic_ios と入れ替えます
(プロテクテッドメンバ関数) [edit]
エラー状態をクリアせずに rdbuf を置き換えます
(プロテクテッドメンバ関数) [edit]

std::ios_base から継承

メンバ関数

書式
書式フラグを管理します
(std::ios_baseのパブリックメンバ関数) [edit]
特定の書式フラグをセットします
(std::ios_baseのパブリックメンバ関数) [edit]
特定の書式フラグをクリアします
(std::ios_baseのパブリックメンバ関数) [edit]
浮動小数点操作の10進精度を管理します
(std::ios_baseのパブリックメンバ関数) [edit]
フィールド幅を管理します
(std::ios_baseのパブリックメンバ関数) [edit]
ロケール
ロケールを設定します
(std::ios_baseのパブリックメンバ関数) [edit]
現在のロケールを返します
(std::ios_baseのパブリックメンバ関数) [edit]
内部の拡張可能な配列

[静的]

pword() および iword() へのインデックスとして使用するのに安全な、プログラム全体で一意な整数を返します
(std::ios_baseのパブリック静的メンバ関数) [edit]
必要であればプライベートな記憶域をリサイズし、指定されたインデックスの long 要素にアクセスします
(std::ios_baseのパブリックメンバ関数) [edit]
必要であればプライベートな記憶域をリサイズし、指定されたインデックスの void* 要素にアクセスします
(std::ios_baseのパブリックメンバ関数) [edit]
その他
イベントのコールバック関数を登録します
(std::ios_baseのパブリックメンバ関数) [edit]
C++ と C の入出力ライブラリが相互運用可能であるかどうかを設定します
(std::ios_baseのパブリック静的メンバ関数) [edit]
メンバクラス
ストリームの例外
(std::ios_baseのパブリックメンバクラス) [edit]
標準ストリームオブジェクトを初期化します
(std::ios_baseのパブリックメンバクラス) [edit]

ノート

std::basic_ios の素直な実装は、以下のメンバのみを格納します (テンプレートパラメータに依存するため、 std::ios_base の一部にはできません)。

  • フィル文字 (fill() を参照)
  • 結び付けられているストリームポインタ (tie() を参照)
  • 紐付けられているストリームバッファポインタ (rdbuf() を参照)

実際の実装は様々です。

Microsoft Visual Studio はこれら3つのメンバを格納するだけです。

LLVM libc++ は格納するメンバが1つ少なくなっています。 rdbuf ポインタは ios_base の void* メンバとして管理されます。

GNU libstdc++ は4つの追加のメンバ (3つのキャッシュされたファセットとフィルが初期化されたことを表すフラグ) を格納します。