Namespaces
Variants
Actions

std::function_ref

From cppreference.com
< cpp‎ | utility‎ | functional
 
 
 
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++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*)
 
 
Defined in header <functional>
template<class... >
class function_ref;// not defined
(1) (since 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...)constnoexcept>;
(2) (since C++26)

Class template std::function_ref is a non-owning function wrapper. std::function_ref objects can store and invoke reference to Callabletarget - functions, lambda expressions, bind expressions, or other function objects, but not pointers to member functions and pointers to member objects. std::nontype can be used to construct std::function_ref by passing function pointers, pointers to member functions, and pointers to member objects.

std::function_refs supports every possible combination of cv-qualifiers (excluding volatile), and noexcept-specifiers provided in its template parameter.

Every specialization of std::function_ref is a TriviallyCopyable type that satisfies copyable.

Contents

[edit]Member types

Member Definition
BoundEntityType(private) unspecified TriviallyCopyable type that satisfies copyable and is capable of storing a pointer to object value or pointer to function value
(exposition-only member type*)
FunctionPointerType(private)R(*)(BoundEntityType , Args&&...)noexcept(noex )

where noex is true if noexcept is present in function signature as part of the template parameter of std::function_ref, false otherwise
(exposition-only member type*)

[edit]Data members

Member Definition
BoundEntityTypebound-entity a bound entity object
(exposition-only member object*)
FunctionPointerTypethunk-ptr a stored pointer to function
(exposition-only member object*)

[edit]Member functions

constructs a new function_ref object
(public member function)[edit]
assigns a function_ref
(public member function)[edit]
invokes the stored thunk of a function_ref
(public member function)[edit]

[edit]Deduction guides

[edit]Notes

Feature-test macroValueStdFeature
__cpp_lib_function_ref202306L(C++26)std::function_ref

[edit]Example

[edit]See also

(C++11)
copyable wrapper of any copy constructible callable object
(class template)[edit]
copyable wrapper of any copy constructible callable object that supports qualifiers in a given call signature
(class template)[edit]
move-only wrapper of any callable object that supports qualifiers in a given call signature
(class template)[edit]
value construction tag
(tag)[edit]
close