reference_wrapper Class
Encapsula 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
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> copy constructible e transferí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> (daí a definição do tipo aninhado result_type como sinônimo de Ret e do tipo aninhado argument_type como sinônimo de T1) somente se o tipo Ty é:
um tipo de função ou um ponteiro para o tipo de função levando um argumento do tipo T1 e retornando Ret; ou
um ponteiro para uma função de membro Ret T::f() cv, onde cv representa VC-qualificadores a função de membro; the type T1 is cvT*; ou
um tipo de classe é derivado de unary_function<T1, Ret>.
Uma especialização reference_wrapper<Ty> é derivado de std::binary_function<T1, T2, Ret> (, portanto, a definição do tipo aninhado result_type como sinônimo de Ret, o aninhados tipo first_argument_type como sinônimo de T1e o tipo aninhado second_argument_type como sinônimo de T2) somente se o tipo de Ty é:
um tipo de função ou um ponteiro para o tipo de função tirar dois argumentos de tipos de T1 e T2 e retornando Ret; ou
um ponteiro para uma função de membro Ret T::f(T2) cv, onde cv representa VC-qualificadores a função de membro; the type T1 is cvT*; ou
um tipo de classe é derivado de binary_function<T1, T2, Ret>.
Construtores
Constrói um reference_wrapper. |
Typedefs
O tipo de resultado fraco da referência empacotado. |
|
O tipo de referência empacotado. |
Funções de membro
Obtém a referência empacotada. |
Operadores
Obtém um ponteiro para a referência empacotada. |
|
Chama a referência empacotada. |
Requisitos
Cabeçalho: <functional>
Namespace: std