std::function<R(Args...)>::operator()
R operator()( Args... args ) const; | (since C++11) |
Invokes the stored callable function target with the parameters args.
Effectively does INVOKE<R>(f, std::forward<Args>(args)...), where f is the target object of *this and INVOKE is the operation described in Callable.
Parameters
| args | - | parameters to pass to the stored callable function target |
Return value
None if R is void. Otherwise the return value of the invocation of the stored callable object.
Exceptions
-
std::bad_function_callif*thisdoes not store a callable function target, i.e.!*this == true.
Example
The following example shows how std::function can passed to other functions by value. Also, it shows how std::function can store lambdas.
#include <iostream>
#include <functional>
void call(std::function<int()> f) // can be passed by value
{
std::cout << f() << '\n';
}
int normal_function()
{
return 42;
}
int main()
{
int n = 1;
std::function<int()> f = [&n](){ return n; };
call(f);
n = 2;
call(f);
f = normal_function;
call(f);
}Output:
1 2 42
See also
| calls the stored function (public member function of std::reference_wrapper<T>) |
|
|
(C++11) | the exception thrown when invoking an empty std::function (class) |
|
(C++17) | invokes any Callable object with given arguments (function template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/utility/functional/function/operator()