From cppreference.com
Roperator()(Args...args)/*cv*//*ref*/noexcept(/*noex*/);(since C++26)Invokes the stored callable target with the parameters args. The /*cv*/, /*ref*/, and /*noex*/ parts of operator() are identical to those of the template parameter of std::copyable_function.
Equivalent to returnstd::invoke_r<R>(/*cv-ref-cast*/(f),std::forward<Args>(args)...);, where f is a cv-unqualified lvalue that denotes the target object of *this, and /*cv-ref-cast*/(f) is equivalent to:
f if cvref is either empty or &, or
std::as_const(f) if cvref is either const or const&, or
std::move(f) if cvref is &&, or
std::move(std::as_const(f)) if cvref is const&&.
The behavior is undefined if *this is empty.
Parameters
args - parameters to pass to the stored callable target Return value
std::invoke_r<R>(/*cv-ref-cast*/(f),std::forward<Args>(args)...).
Exceptions
Propagates the exception thrown by the underlying function call.
Example
See also
invokes the target
(public member function of std::function<R(Args...)>)
invokes the target
(public member function of std::move_only_function)
calls the stored function
(public member function of std::reference_wrapper<T>)
(C++17)(C++23)
invokes any
object with given arguments and possibility to specify return type(since C++23)
(function template)