Classe reference_wrapper
Quebra uma referência.
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
explicit 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
};
Comentários
A reference_wrapper<Ty> é a cópia pode ser atribuída e construível e contém um ponteiro que aponta para um objeto do tipo Ty.
Uma especialização reference_wrapper<Ty> é derivado de std::unary_function<T1, Ret> (portanto define o tipo aninhado result_type sistema autônomo um sinônimo para Ret e o tipo aninhado argument_type sistema autônomo um sinônimo para T1) somente se o tipo Ty é:
um tipo de função ou o ponteiro para o tipo de função levando um argumento do tipo T1 e retornar Ret; ou
a pointer to a member function Ret T::f() cv, where cv represents the member function's cv-qualifiers; the type T1 is cvT*; or
um tipo de classe derivada de unary_function<T1, Ret>.
Uma especialização reference_wrapper<Ty> é derivado de std::binary_function<T1, T2, Ret> (portanto define o tipo aninhado result_type sistema autônomo um sinônimo para Ret, o tipo aninhado first_argument_type sistema autônomo um sinônimo para T1e o tipo aninhado second_argument_type sistema autônomo um sinônimo para T2) somente se o tipo Ty é:
um tipo de função ou o ponteiro para o tipo de função levar dois argumentos de tipos de T1 e T2 e retornar Ret; ou
a pointer to a member function Ret T::f(T2) cv, where cv represents the member function's cv-qualifiers; the type T1 is cvT*; or
um tipo de classe derivada de binary_function<T1, T2, Ret>.
Requisitos
Cabeçalho:<functional>
Namespace: std::tr1