最終更新日時: 2026年01月08日 20時45分05秒 (JST)
yoh が更新

履歴 編集

class template
<ios>

# std::basic_ios

    namespace std {
      template<class CharT, class Traits = char_traits<CharT> >
      class basic_ios : public ios_base { …… };

      using ios  = basic_ios<char>;                                  // <iosfwd> で定義
      using wios = basic_ios<wchar_t>;                              // <iosfwd> で定義
    }

## 概要

`basic_ios` は入出力に対する共通機能を提供するクラステンプレートである。
`ios_base` がロケールや文字型に依存しない書式の状態を保持するのに対して、本クラスはロケールや文字型に依存した書式の状態や、ストリームバッファとその状態を保持する。

テンプレートパラメータとして文字型と文字特性型を受け取るようになっており、使用を容易にするため、以下のパラメータ設定済みエイリアスが定義されている。 このエイリアスは `<iosfwd>` ヘッダで定義されている。

エイリアス | 説明 | 対応バージョン
--- | --- | ---
`ios` | `char` 型のストリーム |
`wios` | `wchar_t` 型のストリーム |

## メンバ関数

### 構築・破棄・代入

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ |
`(destructor)` | デストラクタ |
`operator=` | 代入演算子 |

なお、コピーコンストラクタとコピー代入演算子はdelete定義されている。 C++03では、delete定義の代わりに`private`で宣言のみされていた。

### 状態ビット

名前 | 説明 | 対応バージョン
--- | --- | ---
`rdstate` | 状態ビットを読み取る |
`clear` | 状態ビットの初期化 |
`setstate` | 状態ビットの設定 |
`good` | 正常状態であるか否かの判定 |
`eof` | eof状態であるか否かの判定 |
`fail` | fail状態であるか否かの判定 |
`bad` | bad状態であるか否かの判定 |
`operator bool` | 正常状態であるか否かの判定 | C++11
`operator void*` | 正常状態であるか否かの判定 | C++03 まで
`operator!` | 異常状態であるか否かの判定 |
`exceptions` | 特定の状態時に例外を投げる指定の設定・取得 |

### ストリームバッファ

名前 | 説明 | 対応バージョン
--- | --- | ---
`rdbuf` | ストリームバッファオブジェクトの設定・取得 |
`tie` | 同期する出力ストリームオブジェクトの設定・取得 |

### 書式化その他

名前 | 説明 | 対応バージョン
--- | --- | ---
`copyfmt` | 書式設定のコピー |
`fill` | フィールドの余白を埋める文字の取得・設定 |
`imbue` | ロケールの設定 |

### ワイド文字変換

名前 | 説明 | 対応バージョン
--- | --- | ---
`narrow` | `char_type` 型文字の `char` 型文字への変換 |
`widen` | `char` 型文字の `char_type` 型文字への変換 |

### protectedメンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ |
`init` | ストリームオブジェクトの初期化 |
`move` | ムーブ | C++11
`swap` | 値の交換 | C++11
`set_rdbuf` | ストリームバッファの設定 | C++11

## メンバ型

名前 | 説明 | 対応バージョン
--- | --- | ---
`char_type` | テンプレート仮引数`CharT` |
`int_type` | `Traits::int_type` |
`pos_type` | `Traits::pos_type` |
`off_type` | `Traits::off_type` |
`traits_type` | テンプレート仮引数`Traits` |

## 備考

本クラス、および、本クラスを継承したクラスの説明については、上記にあるメンバ型 `pos_type`、および、`off_type` がそれぞれ `streampos`、および、`streamoff` である場合の記載となっている。
これらのメンバ型がそれ以外の型の場合の挙動は実装依存である。

## 参照

- `ios_base`