C++ named requirements: Callable
Callable 型は、 INVOKE および INVOKE<R> 操作(例: std::function 、 std::bind 、 std::thread::thread などで使用)が適用可能な型です。
|
|
(C++17以降) |
|
|
(C++23以降) |
目次 |
要件
型
T
は、以下の条件を満たす場合
Callable
を満たします
与えられた
-
f, 型Tのオブジェクト, -
ArgTypes, 適切な引数型のリスト, -
R, 適切な戻り値の型.
以下の式は有効でなければなりません:
| 式 | 要件 |
|---|---|
| INVOKE<R> ( f, std:: declval < ArgTypes > ( ) ... ) | この式は未評価文脈において well-formed である。 |
注記
Pointers to data members は、関数呼び出しが行われないにもかかわらず Callable です。
標準ライブラリ
さらに、以下の標準ライブラリ機能は Callable 型を(単なる FunctionObject だけでなく)受け入れます:
|
(C++11)
|
任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能ラッパー
(クラステンプレート) |
|
(C++23)
|
指定された呼び出しシグネチャで修飾子をサポートする任意の呼び出し可能オブジェクトのムーブ専用ラッパー
(クラステンプレート) |
|
(C++26)
|
指定された呼び出しシグネチャで修飾子をサポートする任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能ラッパー
(クラステンプレート) |
|
(C++26)
|
任意の呼び出し可能オブジェクトの非所有ラッパー
(クラステンプレート) |
|
(C++11)
|
関数オブジェクトに1つ以上の引数をバインドする
(関数テンプレート) |
|
(C++20)
(C++23)
|
可変個の引数を順番に関数オブジェクトにバインドする
(関数テンプレート) |
|
(C++11)
|
CopyConstructible
かつ
CopyAssignable
な参照ラッパー
(クラステンプレート) |
|
(C++11)
(C++20で削除)
(C++17)
|
呼び出し可能オブジェクトを引数のセットで呼び出した結果の型を推論する
(クラステンプレート) |
|
(C++11)
|
個別のスレッドを管理する
(クラス) |
|
(C++20)
|
std::thread
で自動結合とキャンセルをサポート
(クラス) |
|
(C++11)
|
複数のスレッドから呼び出されても関数を一度だけ呼び出す
(関数テンプレート) |
|
(C++11)
|
関数を非同期で(場合によっては新しいスレッドで)実行し、結果を保持する
std::future
を返す
(関数テンプレート) |
|
(C++11)
|
非同期取得のために戻り値を格納する関数をパッケージ化する
(クラステンプレート) |
関連項目
|
型が指定された引数型で(
std::invoke
によって呼び出されるかのように)呼び出し可能かどうかをチェックする
(クラステンプレート) |
|
|
(C++20)
|
呼び出し可能な型が指定された引数型のセットで呼び出し可能であることを指定する
(コンセプト) |
|
(C++17)
(C++23)
|
任意の
Callable
オブジェクトを指定された引数で呼び出す
および戻り値の型を指定する可能性
(C++23以降)
(関数テンプレート) |