C++03規格時点で存在した入出力ライブラリに対するC++11規格での変更点をまとめています。
当文書では、入出力(ストリーム)に関する機能を提供するヘッダファイル群について、C++11規格での変更点をまとめている。
他の多くの標準ライブラリ定義クラスと異なり、ほとんどの入出力クラスには継承関係が存在する。
クラス間の継承ツリーについては下記ページ冒頭の図を参照のこと。
基本的に、親クラスにおける変更点はその派生先となる子孫クラスにも引き継がれる。
そのため当文書では、ヘッダファイルをアルファベット順ではなく継承ツリーのルート側から順に並べている。
コピーコンストラクタおよびコピー代入演算子が private 宣言から public の delete 指定になった。
継承元クラスが exception から system_error に変更された。
コンストラクタの定義が変更された。
|
|
デストラクタとメンバ関数 what のオーバライド定義が削除された。
ios_base クラスを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
|
|
コピーコンストラクタおよびコピー代入演算子が delete 指定で定義された。
メンバ関数 operator void* が削除された。(メンバ関数 operator bool が同等の役割を引き継ぐ)
列挙クラス型 io_errc が定義された。
下記のフリー関数が定義された。
|
|
|
streamoff 型の定義が変更された。
long long )basic_ios クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
メンバ関数 putback 、 unget 、 seekg 呼び出し時に eofbit フラグがセットされていた場合の動作が変更された。
failbit フラグのセットのみを行う。eofbit フラグをクリアし、通常通りの処理を行う。コピーコンストラクタおよびコピー代入演算子が private 宣言から public の delete 指定になった。
bool 型への型変換メンバ関数に explicit が付けられ、暗黙の型変換が抑止された。
basic_istream クラステンプレートおよび basic_ostream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
多重継承で定義が曖昧だった下記のメンバ型が明示的に定義された。
char_typetraits_typeint_typepos_typeoff_type下記のフリー関数オーバロードが定義された。
|
basic_ios クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
コピーコンストラクタおよびコピー代入演算子が private 宣言から public の delete 指定になった。
bool 型への型変換メンバ関数に explicit が付けられ、暗黙の型変換が抑止された。
下記のフリー関数オーバロードが定義された。
|
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
<iostream> 内で下記のヘッダファイルがインクルードされることが明示された。
basic_istream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
メンバ関数 is_open の定義が変更され、 const 修飾された。
basic_ostream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
メンバ関数 is_open の定義が変更され、 const 修飾された。
basic_iostream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
メンバ関数 is_open の定義が変更され、 const 修飾された。
basic_streambuf クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
フリー関数 swap (<utility>)のオーバロードが定義された。
|
basic_istream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
basic_ostream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
basic_iostream クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
basic_streambuf クラステンプレートを継承しており、それらの変更点も引き継ぐ。
下記のメンバ関数が定義された。
|
|
下記のコンストラクタオーバロードが定義された。
|
フリー関数 swap (<utility>)のオーバロードが定義された。
|
文中で型名が unspecified となっているものは処理系依存の型であることを表す。
下記の関数が定義された。
|
|
|
|
下記の前方宣言が追加された。
|