std::function<R(Args...)>::operator()
From cppreference.com
 
 
 < cpp | utility | functional | function 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Utilities library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
  
 
 
 Type support (basic types, RTTI)
 Library feature-test macros (C++20)
(C++11)
(C++20)
(C++26)
(C++20)
 Coroutine support (C++20)
 Contract support (C++26)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
  (C++20)(C++20)(C++20)
  (C++20)(C++20)(C++20)
 General utilities
 Relational operators (deprecated in C++20)
(C++20)(C++20)(C++20)
  (C++20)(C++20)(C++20)
(C++20)
 Swap and type operations 
 Common vocabulary types
Function objects 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(C++11)
(C++23)
(C++26)
(C++26)
(C++11)
(C++11)
(C++20)(C++23)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++20)(C++20)
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++17)
(C++17)
(C++17)
(C++17)    
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(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++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*)
std::function 
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.
[edit] Parameters
 args
 -
 parameters to pass to the stored callable function target
[edit] Return value
None if R is void. Otherwise the return value of the invocation of the stored callable object.
[edit] Exceptions
Throws std::bad_function_call if *this does not store a callable function target, i.e. !*this == true.
[edit] Example
The following example shows how std::function can be passed to other functions by value. Also, it shows how std::function can store lambdas.
Run this code
#include <functional> #include <iostream> 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; try { call(f); } catch (const std::bad_function_call & ex) { std::cout << ex.what() << '\n'; } f = [&n](){ return n; }; call(f); n = 2; call(f); f = normal_function; call(f); std::function <void(std::string, int)> g; g = [](std::string str, int i) { std::cout << str << ' ' << i << '\n'; }; g("Hi", 052); }
Possible output:
bad_function_call 1 2 42 Hi 42