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_type
traits_type
int_type
pos_type
off_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
となっているものは処理系依存の型であることを表す。
下記の関数が定義された。
|
|
|
|
下記の前方宣言が追加された。
|