C++03規格時点で存在した数値処理関連ライブラリに対するC++11規格での変更点をまとめています。
当文書では、数値を表現するクラスや数値演算を行う関数等を提供するヘッダファイル群について、C++11規格での変更点をまとめている。
ここでは詳しく取り上げないが、数値に関する主要な新規機能としては下記のようなものがある。
long long intratio と、それを用いた単位型(milli や kilo 等)の定義。int32_t や uint64_t 等)の定義。下記のメンバ関数が定義された。
|
|
コンストラクタの定義が変更された。
|
|
メンバ関数 size が constexpr 関数に変更され、戻り値をコンパイル時定数として利用可能になった。
下記のメンバ関数に条件式なしの noexcept 指定が付与され、例外を投げないことが保証された。
countsizeanynoneset (引数なしのオーバロードのみ)reset (引数なしのオーバロードのみ)flip (引数なしのオーバロードのみ)operator~operator==operator!=operator<<operator>>operator&=operator|=operator^=operator<<=operator>>=メンバ型 reference のコンストラクタおよび全メンバ関数に条件式なしの noexcept 指定が付与され、例外を投げないことが保証された。
下記のフリー関数の bitset を引数にとるオーバロードに条件式なしの noexcept 指定が付与され、例外を投げないことが保証された。
operator&operator|operator^クラステンプレート hash (<functional>)の部分特殊化バージョンが定義された。
|
下記のメンバ関数オーバロードが定義された。
|
すべてのコンストラクタの定義に constexpr が付き、コンパイル時定数として利用可能になった。
文中で型名が arithmetric となっているものは次の規則に従って型が定まる。
long double または complex<long double> ならば long double 。double 、 complex<double> 、または整数型(int 等)ならば double 。float または complex<float> ならば float 。下記のフリー関数が定義された。
|
下記のフリー関数オーバロードが定義された。
|
フリー関数 pow の一部オーバロードが削除され、新しいオーバロードが定義された。
|
|
下記の特殊化バージョンが定義された。
|
下記の静的メンバ定数および静的メンバ関数が定義された。
|
|
すべての静的メンバ定数および静的メンバ関数の定義に constexpr が付き、コンパイル時定数として利用可能になった。
下記の関数が定義された。
|
下記のコンストラクタが定義された。
|
下記のメンバ関数が定義された。
|
下記のメンバ関数オーバロードが定義された。
|
メンバ関数 operator[] の一部オーバロードの定義が変更された。
|
|
クラステンプレート slice_array 、 gslice_array 、 mask_array 、 indirect_array が下記のように変更された。
private 宣言から public の delete 指定になった。operator=(const value_type&) が const 修飾された。(indirect_array を除く)フリー関数 begin および end (<iterator>)のオーバロードが定義された。
戻り値の型 unspecified は処理系依存の RandomAccessIterator である。
|
フリー関数 swap (<utility>)のオーバロードが定義された。
|