std::function::operator()

From cppreference.com
 
 
 
Function objects
Function wrappers
function (C++11)
mem_fn (C++11)
bad_function_call (C++11)
Bind
bind (C++11)
is_bind_expression (C++11)
is_placeholder (C++11)
_1, _2, _3, ... (C++11)
Reference wrappers
reference_wrapper (C++11)
ref
cref
(C++11)
(C++11)
Operator wrappers
Negators
Deprecated binders and adaptors
unary_function (deprecated)
binary_function (deprecated)
ptr_fun (deprecated)
pointer_to_unary_function (deprecated)
pointer_to_binary_function (deprecated)
mem_fun (deprecated)
mem_fun_t
mem_fun1_t
const_mem_fun_t
const_mem_fun1_t
(deprecated)
(deprecated)
(deprecated)
(deprecated)
mem_fun_ref (deprecated)
mem_fun_ref_t
mem_fun1_ref_t
const_mem_fun_ref_t
const_mem_fun1_ref_t
(deprecated)
(deprecated)
(deprecated)
(deprecated)
binder1st
binder2nd
(deprecated)
(deprecated)
bind1st
bind2nd
(deprecated)
(deprecated)
 
 
R operator()( ArgTypes... args ) const;
(since C++11)

Calls the stored callable function target with the parameters args.

Contents

[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

[edit] Example

The following example shows how std::function can passed to other functions by value. Also, it shown 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

[edit] See also