namespace std {
template<class CharT, class Traits = char_traits<CharT>>
class basic_iostream :
public basic_istream<CharT, Traits>,
public basic_ostream<CharT, Traits> { …… };
using iostream = basic_iostream<char>;
using wiostream = basic_iostream<wchar_t>;
}
概要
basic_iostreamは、入出力両方が可能なストリームを表現するクラスである。
すなわち、rdbuf()が指し示すストリームバッファオブジェクトに対する読み取り操作・書き込み操作を提供する。
入力操作はbasic_istreamから、出力操作はbasic_ostreamから継承している。
テンプレートパラメータとして文字型を受け取るようになっており、使用を容易にするため、以下のパラメータ設定済みエイリアスが定義されている。
このエイリアスは<istream>ヘッダと<iosfwd>ヘッダで定義されている。
| エイリアス | 説明 | 対応バージョン |
|---|---|---|
iostream |
char型。ASCII、UTF-8等のマルチバイト文字列や、バイナリデータとして使用する。 |
|
wiostream |
wchar_t型。ワイド文字列として使用する。 |
メンバ
基底クラスも参照のこと。
型
多重継承による曖昧さを解消するため、basic_iosと同じ内容でこのクラスでも定義されている。
| 名前 | 説明 | 対応バージョン |
|---|---|---|
char_type |
テンプレート仮引数CharTの別名 |
C++11 |
int_type |
Traits::int_typeの別名 |
C++11 |
pos_type |
Traits::pos_typeの別名 |
C++11 |
off_type |
Traits::off_typeの別名 |
C++11 |
traits_type |
テンプレート仮引数Traitsの別名 |
C++11 |
構築・破棄
| 名前 | 説明 | 対応バージョン |
|---|---|---|
(constructor) |
コンストラクタ | |
(destructor) |
デストラクタ | |
operator= |
ムーブ代入 | C++11 |
swap |
値の交換 | C++11 |
- コピーコンストラクタとコピー代入演算子はdelete定義されている。
- ムーブコンストラクタ・ムーブ代入演算子と
swapはprotectedで定義されている。