Namespaces
Variants

std:: function_ref

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until 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 なTriviallyCopyable型です。

目次

メンバー型

メンバー 定義
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)
任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能ラッパー
(クラステンプレート)
指定された呼び出しシグネチャで修飾子をサポートする任意のコピー構築可能な呼び出し可能オブジェクトのコピー可能ラッパー
(クラステンプレート)
指定された呼び出しシグネチャで修飾子をサポートする任意の呼び出し可能オブジェクトのムーブ専用ラッパー
(クラステンプレート)
値構築タグ
(タグ)