std::function_ref
From cppreference.com
< cpp | utility | functional
| ヘッダ <functional> で定義 |
||
| template< class... > class function_ref; // 定義されていません |
(1) | (C++26以降) |
| template< class R, class... Args > class function_ref<R(Args...)>; |
(2) | (C++26以降) |
クラステンプレートstd::function_refは、所有権を持たない関数ラッパーです。std::function_refオブジェクトは、関数、ラムダ式、バインド式、またはその他の関数オブジェクト(ただし、メンバ関数ポインタやメンバオブジェクトポインタは除く)などのCallableな*ターゲット*への参照を格納し、呼び出すことができます。std::nontypeを使用すると、関数ポインタ、メンバ関数ポインタ、メンバオブジェクトポインタを渡してstd::function_refを構築できます。
std::function_refは、テンプレートパラメータで指定されたcv修飾子(volatileを除く)とnoexcept指定子のあらゆる可能な組み合わせをサポートします。
std::function_refのすべての特殊化は、TriviallyCopyable型であり、copyableを満たします。
目次 |
[編集] メンバ型
| メンバ | 定義 |
BoundEntityType (private) |
未指定のTriviallyCopyable型であり、copyableを満たし、オブジェクトポインタ値または関数ポインタ値を格納できる型(説明専用メンバ型*) |
FunctionPointerType (private) |
R(*)(BoundEntityType , Args&&...) noexcept(noex )
ここで、noexは、 |
[編集] データメンバ
| メンバ | 定義 |
BoundEntityType bound-entity |
バウンドエンティティオブジェクト (説明用のメンバオブジェクト*) |
FunctionPointerType thunk-ptr |
格納された関数ポインタ (説明用のメンバオブジェクト*) |
[編集] メンバ関数
新しいfunction_refオブジェクトを構築します(public member function) | |
function_refを代入します(public member function) | |
function_refの格納されたサンクを呼び出します(public member function) |
[編集] 推論ガイド
[編集] 注釈
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_function_ref |
202306L |
(C++26) | std::function_ref
|
[編集] 例
| このセクションは未完成です 理由:例 |
[編集] 関連項目
| (C++11) |
コピー構築可能な任意の呼び出し可能オブジェクトをラップするコピー可能なラッパー (クラステンプレート) |
| (C++26) |
所与の呼び出しシグネチャにおける修飾子をサポートする、任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能なラッパー (クラステンプレート) |
| (C++23) |
与えられた呼び出しシグネチャで修飾子をサポートする任意の呼び出し可能オブジェクトのムーブ専用ラッパー (クラステンプレート) |
| (C++26) |
値構築タグ (タグ) |