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.
| Contents | 
[edit] Member types
| Type | Definition | 
| allocator_type | std::experimental::erased_type | 
[edit] Member functions
| constructs a new std::experimental::functioninstance(public member function) | |
| assigns a new target (public member function) | |
| swaps the contents (public member function) | |
| retrieves a pointer to the memory resource used by this object to allocate memory (public member function) | 
[edit] Non-member functions
| specializes the swapalgorithm(function template) | |
| compares an std::experimental::function with nullptr (function template) | 
[edit] Helper classes
| specializes the std::uses_allocator type trait (class template specialization) | 
Members identical to std::function
Member types
| Type | Definition | 
| result_type | R | 
| argument_type | Tif sizeof...(Args)==1 andTis the first and only type inArgs... | 
| first_argument_type | T1if sizeof...(Args)==2 andT1is the first of the two types inArgs... | 
| second_argument_type | T2if sizeof...(Args)==2 andT2is the second of the two types inArgs... | 
Member functions
| destroys a std::functioninstance(public member function of std::function) | |
| checks if a valid target is contained (public member function of std::function) | |
| invokes the target (public member function of std::function) | |
| Target access | |
| obtains the typeid of the stored target (public member function of std::function) | |
| obtains a pointer to the stored target (public member function of std::function) | |