Namespaces
Variants

std::function_ref

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

一般ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap および 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
関数オブジェクト
関数呼び出し
(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; // not defined
で定義 (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 ターゲット (関数、ラムダ式、bind式、またはその他の関数オブジェクト) への参照を格納および呼び出しできますが、メンバ関数へのポインタとメンバオブジェクトへのポインタは格納できません。 std::nontype は、関数ポインタ、メンバ関数へのポインタ、メンバオブジェクトへのポインタを渡すことで std::function_ref を構築するために使用できます。

std::function_ref は、テンプレートパラメータで指定された cv修飾子 (volatile を除く) および noexcept指定子 のすべての可能な組み合わせをサポートします。

std::function_ref のすべての特殊化は、TriviallyCopyable 型であり、copyable を満たします。

メンバー型

メンバー 定義
BoundEntityType (private) unspecified TriviallyCopyable 要件を満たし、 copyable であり、オブジェクトへのポインタ値または関数へのポインタ値を格納可能な型
( 説明専用メンバー型* )
FunctionPointerType (private) R ( * ) ( BoundEntityType  , Args && ... ) noexcept ( noex  )

ここで noex は、 std::function_ref のテンプレートパラメータの関数シグネチャの一部として noexcept が存在する場合は true 、それ以外の場合は false
( 説明専用メンバー型* )

データメンバ

メンバー 定義
BoundEntityType bound-entity バインドされたエンティティオブジェクト
( 説明専用メンバーオブジェクト* )
FunctionPointerType thunk-ptr 格納された関数ポインタ
( 説明専用メンバーオブジェクト* )

メンバー関数

新しい function_ref オブジェクトを構築する
(公開メンバ関数)
function_ref を代入する
(公開メンバ関数)
function_ref の格納されたサンクを呼び出す
(公開メンバ関数)

推論ガイド

注記

機能テスト マクロ 値 標準 機能
__cpp_lib_function_ref 202306L (C++26) std::function_ref

例

関連項目

(C++11)
任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能ラッパー
(クラステンプレート)
指定された呼び出しシグネチャで修飾子をサポートする任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能ラッパー
(クラステンプレート)
指定された呼び出しシグネチャで修飾子をサポートする任意の呼び出し可能オブジェクトのムーブ専用ラッパー
(クラステンプレート)
値構築タグ
(タグ)