std::copyable_function:: operator()

From cppreference.com
Utilities library
General utilities
Relational operators (deprecated in C++20)
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* )
R operator ( ) ( 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 return std:: 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 cv ref is either empty or & , or
  • std:: as_const ( f ) if cv ref is either const or const & , or
  • std :: move ( f ) if cv ref is && , or
  • std :: move ( std:: as_const ( f ) ) if cv ref 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 Callable object with given arguments and possibility to specify return type (since C++23)
(function template)