# std::experimental::function

From cppreference.com
< cpp‎ | experimental

Defined in header `<experimental/functional>` |  |
template< class > class function; /* undefined */ |  | (library fundamentals TS)
template< class R, class... Args > class function<R(Args...)> |  | (library fundamentals TS)

`std::experimental::function` is a modified version of std::function with support for type-erased allocators.

### Member types

Type | Definition
`allocator_type` | std::experimental::erased_type

### Member functions

(constructor) | constructs a new `std::experimental::function` instance (public member function)
operator= | assigns a new target (public member function)
swap | swaps the contents (public member function)
get_memory_resource | retrieves a pointer to the memory resource used by this object to allocate memory (public member function)

### Non-member functions

std::experimental::swap(std::experimental::function) | specializes the `swap` algorithm (function template)
operator==operator!= | compares an std::experimental::function with nullptr (function template)

### Helper classes

std::uses_allocator<std::experimental::function> | specializes the std::uses_allocator type trait (class template specialization)

## Members identical to std::function

### Member types

Type | Definition
`result_type` | `R`
`argument_type` | `T` if sizeof...(Args)==1 and `T` is the first and only type in `Args...`
`first_argument_type` | `T1` if sizeof...(Args)==2 and `T1` is the first of the two types in `Args...`
`second_argument_type` | `T2` if sizeof...(Args)==2 and `T2` is the second of the two types in `Args...`

### Member functions

(destructor) | destroys a `std::function` instance (public member function of `std::function<R(Args...)>`)
operator bool | checks if a valid target is contained (public member function of `std::function<R(Args...)>`)
operator() | invokes the target (public member function of `std::function<R(Args...)>`)

##### Target access

target_type | obtains the typeid of the stored target (public member function of `std::function<R(Args...)>`)
target | obtains a pointer to the stored target (public member function of `std::function<R(Args...)>`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/function&oldid=98579"