reference_wrapper Class
Создает оболочку для ссылки.
template<class Ty>
class reference_wrapper
: public unary_function<T1, Ret> // see below
: public binary_function<T1, T2, Ret> // see below
{
public:
typedef Ty type;
typedef T0 result_type; // see below
reference_wrapper(Ty&);
Ty& get() const;
operator Ty&() const;
template<class T1, class T2, ..., class TN>
typename result_of<T(T1, T2, ..., TN)>::type
operator()(T1&, T2&, ..., TN&);
private:
Ty *ptr; // exposition only
};
Заметки
A reference_wrapper<Ty> является копией Разобравшись и может быть назначен и содержит указатель, указывающий на объект типа Ty.
Специализация reference_wrapper<Ty> является производным от std::unary_function<T1, Ret> (поэтому определение вложенного типа result_type как синоним Ret и вложенного типа argument_type как синоним T1) только если тип Ty является:
тип функции или указатель на тип функции, используя один аргумент типа T1 и возвращение Ret; или
указатель на функцию-член Ret T::f() cv, где cv представляет функцию-член ОПС квалификаторы; the type T1 is cvT*; или
тип класса, производного от unary_function<T1, Ret>.
Специализацию reference_wrapper<Ty> является производным от std::binary_function<T1, T2, Ret> (поэтому определение вложенного типа result_type как синоним Ret, вложенный тип first_argument_type как синоним T1и вложенного типа second_argument_type как синоним T2) только если тип Ty является:
тип функции или указатель на тип функции, принимающие аргументы двух типов T1 и T2 и возвращение Ret; или
указатель на функцию-член Ret T::f(T2) cv, где cv представляет функцию-член ОПС квалификаторы; the type T1 is cvT*; или
тип класса, производного от binary_function<T1, T2, Ret>.
Конструкторы
Конструирует reference_wrapper. |
Определения типов
Тип слабый результат перенесенного ссылки. |
|
Тип перенесенного ссылки. |
Функции-члены
Получает оболочку ссылки. |
Операторы
Получает указатель на оболочку ссылки. |
|
Вызывает оболочку ссылки. |
Требования
Заголовок: <functional>
Пространство имен: std