|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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...)>; | (2) | (since C++26) |
Class templatestd::function_ref is a non-owning function wrapper.std::function_ref objects can store and invoke reference toCallabletarget - 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 constructstd::function_ref by passing function pointers, pointers to member functions, and pointers to member objects.
std::function_refs supports every possible combination ofcv-qualifiers (excludingvolatile), andnoexcept-specifiers provided in its template parameter.
Every specialization ofstd::function_ref is aTriviallyCopyable type that satisfiescopyable.
Contents |
| Member | Definition |
BoundEntityType(private) | unspecifiedTriviallyCopyable type that satisfiescopyable 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 )wherenoex istrue ifnoexcept is present in function signature as part of the template parameter of |
| Member | Definition |
BoundEntityTypebound-entity | a bound entity object (exposition-only member object*) |
FunctionPointerTypethunk-ptr | a stored pointer to function (exposition-only member object*) |
constructs a newfunction_ref object(public member function)[edit] | |
assigns afunction_ref(public member function)[edit] | |
invokes the stored thunk of afunction_ref(public member function)[edit] |
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_function_ref | 202306L | (C++26) | std::function_ref |
| This section is incomplete Reason: example |
(C++11) | copyable wrapper of any copy constructible callable object (class template)[edit] |
(C++26) | copyable wrapper of any copy constructible callable object that supports qualifiers in a given call signature (class template)[edit] |
(C++23) | move-only wrapper of any callable object that supports qualifiers in a given call signature (class template)[edit] |
(C++26) | value construction tag (tag)[edit] |