名前空間
変種
操作

std::function_ref

From cppreference.com
< cpp‎ | utility‎ | functional
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
関数オブジェクト
関数ラッパー
(C++11)
function_ref
(C++26)
(C++11)
関数の呼び出し
(C++17)(C++23)
恒等関数オブジェクト
(C++20)
透過的な演算子ラッパー
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

古いバインダとアダプタ
(C++17まで*)
(C++17まで*)
(C++17まで*)
(C++17まで*)  
(C++17まで*)
(C++17*まで)(C++17*まで)(C++17*まで)(C++17*まで)
(C++20まで*)
(C++20まで*)
(C++17*まで)(C++17*まで)
(C++17*まで)(C++17*まで)

(C++17まで*)
(C++17*まで)(C++17*まで)(C++17*まで)(C++17*まで)
(C++20まで*)
(C++20まで*)
 
 
ヘッダ <functional> で定義
template< class... >
class function_ref; // 定義されていません
(1) (C++26以降)
template< class R, class... Args >

class function_ref<R(Args...)>;
template< class R, class... Args >
class function_ref<R(Args...) noexcept>;
template< class R, class... Args >
class function_ref<R(Args...) const>;
template< class R, class... Args >

class function_ref<R(Args...) const noexcept>;
(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は、std::function_refのテンプレートパラメータにnoexceptが存在する場合true、それ以外の場合falseです。
(説明専用メンバ型*)

[編集] データメンバ

メンバ 定義
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)
コピー構築可能な任意の呼び出し可能オブジェクトをラップするコピー可能なラッパー
(クラステンプレート) [編集]
所与の呼び出しシグネチャにおける修飾子をサポートする、任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能なラッパー
(クラステンプレート) [編集]
与えられた呼び出しシグネチャで修飾子をサポートする任意の呼び出し可能オブジェクトのムーブ専用ラッパー
(クラステンプレート) [編集]
値構築タグ
(タグ)[編集]
English 日本語 中文(简体) 中文(繁體)