template <class T> class reference_wrapper;
| member type | definition | 
|---|---|
| type | The template parameter (T) | 
| result_type | If T is a pointer to function or to member function type: the return type of T. If T is a class, and has a result_type member: T::result_type.Otherwise, not defined. | 
| argument_type | If T is a function type or a pointer to function type taking a single argument: the type of the argument taken by T. If T is a pointer to member function: the class type of which T is a member (with the same const/volatile qualification as the member function). If T is a class, and has an argument_type member: T::argument_type.Otherwise, not defined. | 
| first_argument_type | If T is a function type or a pointer to function type taking two arguments: the type of the first argument taken by T. If T is a pointer to member function taking a single argument: the class type of which T is a member (with the same const/volatile qualification as the member function). If T is a class, and has an first_argument_type member: T::first_argument_type.Otherwise, not defined. | 
| second_argument_type | If T is a function type or a pointer to function type taking two arguments: The type of the second argument taken by T. If T is a pointer to member function taking a single argument: the argument taken by T. If T is a class, and has an second_argument_type member: T::second_argument_type.Otherwise, not defined. | 
|  |  | 
| refs: 10 20 30 |