Utility library
提供: cppreference.com
< cpp
C++にはビット操作から部分適用までの機能を提供するユーティリティライブラリが多数含まれています。これらのライブラリは、大きく二つのグループに分けることができます。
- 言語サポートライブラリ
- 汎用ライブラリ
目次 |
[編集] 言語サポート
言語サポートライブラリは、言語機能および一般的なイディオムと強く結びついたクラスおよび関数を提供します.
[編集] 型サポート
基本的な型(std::size_t、std::nullptr_tなど)、RTTI(std::type_infoなど)、type traits(std::is_integral、std::rankなど)
[編集] 動的なメモリ管理
スマートポインタ(std::shared_ptrなど)、アロケータ(std::allocatorなど)、Cスタイルのメモリ管理(std::mallocなど)
[編集] エラー処理
例外(std::exception、std::logic_errorなど)、アサーション(assertなど)
[編集] 初期化リスト
(C++11) |
aggregateでない型にもリスト初期化構文を適用できるようにします (クラステンプレート) |
[編集] 可変個引数関数
任意の数のパラメータを取る関数のサポート(va_start、va_arg、va_endなど)
[編集] 汎用ユーティリティ
[編集] プログラムユーティリティ
終了処理(std::abort、std::atexitなど)、環境(std::systemなど)、シグナル(std::raiseなど)
[編集] 日付と時刻
タイムトラッキング(std::chrono::time_point、std::chrono::durationなど)、Cスタイルの日付と時刻(std::time、std::clockなど)
[編集] ビット操作
固定長のビット配列を実装します (クラス) |
[編集] 関数オブジェクト
関数の部分適用(std::bindなど)、ジェネリック関数(std::functionなど)、定義済みファンクタ(std::plus、std::equal_toなど)
[編集] ペアとタプル
2つ組、つまり二つの値のペアを実装します (クラステンプレート) | |
(C++11) |
異なる型の混在できる複数の要素を格納する固定サイズのコンテナを実装します (クラステンプレート) |
(C++11) |
要素ごとのコンストラクタ関数を正しくオーバーロードするために用いられる型タグ (クラス) |
(C++11) |
要素ごとのコンストラクタ関数を曖昧さなく選択するためのpiecewise_construct_t 型オブジェクト (定数) |
[編集] 転送、交換および移動
2つのオブジェクトの値を交換します (関数テンプレート) | |
(C++11) |
関数の引数を転送します。 (関数テンプレート) |
(C++11) |
右辺値参照を取得します。 (関数テンプレート) |
(C++11) |
ムーブコンストラクタが例外をスローしない場合、右辺値参照を取得します。 (関数テンプレート) |
(C++11) |
未評価のコンテキストで、式の型を取得します。 (関数テンプレート) |
[編集] 関係演算子
Defined in namespace
std::rel_ops | |
ユーザー定義の operator== および operator< をもとに、比較演算子を自動生成します (関数テンプレート) |
[編集] ハッシュサポート
(C++11) |
ハッシュ関数オブジェクト (クラステンプレート) |