std::function::function

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)
 
 
function();
(1) (since C++11)
function( std::nullptr_t );
(2) (since C++11)
function( const function& f );
(3) (since C++11)
function( function&& f );
(4) (since C++11)
template< class F >
function( F f );
(5) (since C++11)
template< class Alloc >
function( std::allocator_arg_t, const Alloc& alloc );
(6) (since C++11)
template< class Alloc >

function( std::allocator_arg_t, const Alloc& alloc,

          std::nullptr_t );
(7) (since C++11)
template< class Alloc >

function( std::allocator_arg_t, const Alloc& alloc,

          const function& f );
(8) (since C++11)
template< class Alloc >

function( std::allocator_arg_t, const Alloc& alloc,

          function&& f );
(9) (since C++11)
template< class F, class Alloc >
function( std::allocator_arg_t, const Alloc& alloc, F f );
(10) (since C++11)

Constructs a std::function from a variety of sources.

1, 2, 6, 7) Create an empty function.
3, 8) Create a copy of f.
4, 9) Move the contents of f into *this.
5, 10) Move the Callable object f into *this.

Contents

[edit] Parameters

f - the function object used to initialize *this
alloc - an Allocator used for internal memory allocation

[edit] Notes

6-10) Constructors that have a first parameter of type std::allocator_arg_t must have a second argument alloc of type A that is an Allocator. This allocator is used to create memory for any internal data structures that the function might use.

5, 10) The type F should be CopyConstructible and the object f should be Callable. The resulting function object that is created will be empty if f is a NULL function pointer, a NULL pointer to member, or if f is a std::function and !f == true. The argument f is moved into the resulting function object.

[edit] Exceptions

1-2)
noexcept specification:  
noexcept
  (since C++11)

3-5) (none)

6-7)
noexcept specification:  
noexcept
  (since C++11)

8-10) (none)

[edit] Example