コンセプトライブラリ (C++20)
提供: cppreference.com
< cpp
コンセプトライブラリはテンプレート引数のコンパイル時検証および型の特性に基づく関数ディスパッチを行うために使用される基礎的なライブラリコンセプトの定義を提供します。 これらのコンセプトはプログラムの等式推論の基礎を提供します。
標準ライブラリのほとんどのコンセプトは構文と意味論の両方の要件を課します。 一般的にコンパイラによってチェック可能なのは構文の要件だけです。 使用の時点で意味論の要件が満たされない場合、プログラムは ill-formed であり、診断は要求されません。
ヘッダ <concepts> で定義 | ||
名前空間 std で定義 | ||
コア言語のコンセプト | ||
(C++20) | 型が別の型と同じであることを指定します (コンセプト) | |
(C++20) | 型が別の型から派生していることを指定します (コンセプト) | |
(C++20) | 型が別の型に暗黙に変換可能であることを指定します (コンセプト) | |
(C++20) | 2つの型が共通の参照型を共有することを指定します (コンセプト) | |
(C++20) | 2つの型が共通の型を共有することを指定します (コンセプト) | |
(C++20) | 型が整数型であることを指定します (コンセプト) | |
(C++20) | 型が符号付き整数型であることを指定します (コンセプト) | |
(C++20) | 型が符号なし整数型であることを指定します (コンセプト) | |
(C++20) | 型が浮動小数点型であることを指定します (コンセプト) | |
(C++20) | 型が別の型から代入可能であることを指定します (コンセプト) | |
(C++20) | 型がスワップ可能であること、または2つの型がお互いにスワップ可能であることを指定します (コンセプト) | |
(C++20) | その型のオブジェクトが破棄可能であることを指定します (コンセプト) | |
(C++20) | その型の変数が与えられた実引数の集合から構築可能または束縛可能であることを指定します (コンセプト) | |
(C++20) | その型のオブジェクトがデフォルト構築可能であることを指定します (コンセプト) | |
(C++20) | その型のオブジェクトがムーブ構築可能であることを指定します (コンセプト) | |
(C++20) | その型のオブジェクトがコピー構築可能かつムーブ構築可能であることを指定します (コンセプト) | |
比較のコンセプト | ||
(C++20) | 型がブーリアンの文脈で使用可能であることを指定します (コンセプト) | |
演算子 == が同値関係であることを指定します (コンセプト) | ||
型の比較演算子が全順序を与えることを指定します (コンセプト) | ||
オブジェクトのコンセプト | ||
(C++20) | その型のオブジェクトがムーブ可能でありスワップ可能であることを指定します (コンセプト) | |
(C++20) | その型のオブジェクトがコピー、ムーブ、およびスワップ可能であることを指定します (コンセプト) | |
(C++20) | その型のオブジェクトがコピー、ムーブ、スワップ、およびデフォルト構築可能であることを指定します (コンセプト) | |
(C++20) | 型が普通である、つまり semiregular かつ equality_comparable であることを指定します (コンセプト) | |
呼び出し可能なコンセプト | ||
(C++20) | callable 型が与えられた実引数の型の集合で呼び出せることを指定します (コンセプト) | |
(C++20) | callable 型がブーリアン述語であることを指定します (コンセプト) | |
(C++20) | callable 型が二項関係であることを指定します (コンセプト) | |
(C++20) | relation が狭義弱順序を課すことを指定します (コンセプト) |
追加のコンセプトがアルゴリズムライブラリおよび範囲ライブラリにあります。