C++03規格時点で存在した数値処理関連ライブラリに対するC++11規格での変更点をまとめています。
当文書では、数値を表現するクラスや数値演算を行う関数等を提供するヘッダファイル群について、C++11規格での変更点をまとめている。
ここでは詳しく取り上げないが、数値に関する主要な新規機能としては下記のようなものがある。
long long int
ratio
と、それを用いた単位型(milli
や kilo
等)の定義。int32_t
や uint64_t
等)の定義。下記のメンバ関数が定義された。
|
|
コンストラクタの定義が変更された。
|
|
メンバ関数 size
が constexpr
関数に変更され、戻り値をコンパイル時定数として利用可能になった。
下記のメンバ関数に条件式なしの noexcept
指定が付与され、例外を投げないことが保証された。
count
size
any
none
set
(引数なしのオーバロードのみ)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>)のオーバロードが定義された。
|