std::function_ref - cppreference.com (original) (raw)
Class template std::function_ref
is a non-owning function wrapper. std::function_ref
objects can store and invoke reference to Callable target - 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_ref
s 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 |
---|---|
BoundEntityType bound-entity | a bound entity object(exposition-only member object*) |
FunctionPointerType thunk-ptr | a stored pointer to function(exposition-only member object*) |
[edit] Member functions
[edit] Deduction guides
[edit] Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_function_ref | 202306L | (C++26) | std::function_ref |
[edit] Example
[edit] See also
| | 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] |