コンセプト
提供: cppreference.com
< cpp
コンセプトは型に対する要件の集合に名前を付けたものを表す用語です。
コンセプトの形式仕様 (ISO/IEC TS 19217:2015) は実験的な技術仕様書であり、オーバーロード解決やテンプレートの特殊化中に、テンプレートや関数の期待を満たすテンプレート引数の検証を可能にします。
このページにリストされているライブラリコンセプトは、標準ライブラリの期待する型を定義する C++ 標準の規範的文章で使用されている名前付きの要件です。 これらの要件は、 Ranges TS の一部として上記の技術仕様書の様式を使用して形式化されています。 C++ 標準ライブラリの将来のバージョンに、これらの正式な定義が含まれることが期待されています。 それまでは、ライブラリのテンプレートをインスタンス化する際、これらの要件を満たすテンプレート引数を用いるのはプログラマの責任です。 そうしなかった場合、非常に複雑なコンパイラの診断メッセージを見ることになるかもしれません。
基本 | ||
その型のオブジェクトがデフォルト構築可能であることを指定します (コンセプト) | ||
(C++11) |
その型のオブジェクトが rvalue から構築可能であることを指定します (コンセプト) | |
その型のオブジェクトが lvalue から構築可能であることを指定します (コンセプト) | ||
(C++11) |
その型のオブジェクトが rvalue から代入可能であることを指定します (コンセプト) | |
その型のオブジェクトが lvalue から代入可能であることを指定します (コンセプト) | ||
その型のオブジェクトが破壊可能であることを指定します (コンセプト) | ||
レイアウト | ||
ノート: このサブカテゴリで指定された名前の名前付き要件またはコンセプトは標準で定義されていません。 これらはコア言語で定義される型カテゴリです。 これらは一貫性のためだけにコンセプトとしてここに含まれています。 | ||
(C++11) |
トリビアルなコピー、代入、デストラクタを持つクラス (コンセプト) | |
(C++11) |
トリビアルなコンストラクタ、代入、デストラクタを持つクラス (コンセプト) | |
(C++11) |
他の StandardLayout なメンバのみをすべて同じアクセス指定で含む非 virtual なクラス (コンセプト) | |
POD (Plain Old Data) 構造体、 C の struct と互換 (コンセプト) | ||
ライブラリ全体 | ||
operator== が同値関係 (コンセプト) | ||
operator< が strict weak ordering (コンセプト) | ||
(C++11) |
非メンバ関数 swap() の無修飾な呼び出しで交換可能 (コンセプト) | |
(C++11) |
Swappable な型を逆参照する Iterator (コンセプト) | |
(C++11) |
NULL値をサポートするポインタライクな型 (コンセプト) | |
(C++11) |
異なる値の入力に対して同じ出力を生成する確率が低い FunctionObject (コンセプト) | |
確保情報を持つクラス型 (コンセプト) | ||
関数呼び出し構文で呼び出せるオブジェクト (コンセプト) | ||
invoke 操作が定義されている型 (コンセプト) | ||
1個の引数に対して、それを変更せずに、 bool に変換可能な値を返す FunctionObject (コンセプト) | ||
2個の引数に対して、それを変更せずに、 bool に変換可能な値を返す FunctionObject (コンセプト) | ||
順序関係を確立する BinaryPredicate (コンセプト) |
コンテナ | |
イテレータを使用した要素アクセスが可能なデータ構造 (コンセプト) | |
双方向イテレータを使用するコンテナ (コンセプト) | |
(C++11) |
アロケータを使用するコンテナ (コンセプト) |
要素を線形に格納するコンテナ (コンセプト) | |
(C++17) |
要素を隣接するメモリアドレスに格納するコンテナ (コンセプト) |
要素をキーに紐付けて格納するコンテナ (コンセプト) | |
要素をキーに紐付けてバケットに格納するコンテナ (コンセプト) | |
コンテナ要素 | |
(C++11) |
未初期化記憶域にデフォルト構築可能な要素 (コンセプト) |
(C++11) |
未初期化記憶域にコピー構築可能な要素 (コンセプト) |
(C++11) |
未初期化記憶域にムーブ構築可能な要素c (コンセプト) |
(C++11) |
未初期化記憶域に構築可能な要素 (コンセプト) |
(C++11) |
アロケータを使用して破壊可能な要素 (コンセプト) |
イテレータ | |
何らかのデータ構造内のデータにアクセスするための一般的な概念 (コンセプト) | |
データを読み込むために使用可能なイテレータ (コンセプト) | |
データを書き込むために使用可能なイテレータ (コンセプト) | |
データを複数回読み込むために使用可能なイテレータ (コンセプト) | |
インクリメントとデクリメントの両方が可能なイテレータ (コンセプト) | |
定数時間で前進可能なイテレータ (コンセプト) | |
(C++17) |
隣接して確保された要素へのイテレータ (コンセプト) |
(C++20) |
定数式の評価中に使用できるイテレータ (コンセプト) |
ストリーム入出力関数 | |
先行するホワイトスペースをスキップせずに処理された文字を数えるストリーム入力関数 (コンセプト) | |
先行するホワイトスペースをスキップするストリーム入力関数 (コンセプト) | |
基本ストリーム出力関数 (コンセプト) | |
エラー時に failbit を設定しストリームへの参照を返すストリーム出力関数 (コンセプト) | |
乱数生成 | |
(C++11) |
一連の整数を消費し一連の32ビット符号なし値を生成します (コンセプト) |
(C++11) |
一様分布のランダムな符号なし整数を返します (コンセプト) |
(C++11) |
シードによって定義される決定的な UniformRandomBitGenerator (コンセプト) |
(C++11) |
他の RandomNumberEngine の出力を変換する RandomNumberEngine (コンセプト) |
(C++11) |
指定された数学的確率密度関数に従って分布する乱数を返します (コンセプト) |
並行 | |
(C++11) |
実行媒体 (スレッドなど) に対する排他所有権のセマンティクスを提供します (コンセプト) |
(C++11) |
ロック取得の試みをサポートする BasicLockable (コンセプト) |
(C++11) |
タイムアウト付きのロック獲得をサポートする Lockable (コンセプト) |
(C++11) |
データ競合と逐次一貫性同期に対して保護する Lockable (コンセプト) |
(C++11) |
データ競合と逐次一貫性同期に対して保護する TimedLockable (コンセプト) |
(C++17) |
共有所有権のセマンティクスをサポートする Mutex (コンセプト) |
(C++14) |
共有所有権のセマンティクスをサポートする TimedMutex (コンセプト) |
その他 | |
(C++11) |
型の特性を記述します (コンセプト) |
(C++11) |
2つの型の間の関係を記述します (コンセプト) |
(C++11) |
型の特性を変更します (コンセプト) |
(C++11) |
時間、時刻、現在時刻を取得する関数を集めます (コンセプト) |
(C++11) |
例外を投げない Clock (コンセプト) |
文字型に対する型と関数を定義します (コンセプト) | |
bitset、整数、列挙 (コンセプト) | |
初期化と代入が実質的に同じ型 (コンセプト) | |
(C++11) |
正規表現ライブラリで使用される型と関数の定義 (コンセプト) |
(C++11) |
constexpr コンストラクタを持つ型 (コンセプト) |
This section is incomplete Reason: Any other missing concept? |