Partilhar via


Classe result_of

O tipo de retorno de um objeto que pode ser chamado com quebra automática.

template<class Ty>
    struct result_of {
    typedef T0 type;
    };

Parâmetros

  • Ty
    Uma descrição de uma telefonar de função (consulte os comentários seção).

Comentários

A classe de modelo define o membro type sistema autônomo um sinônimo para o tipo de retorno de telefonar de função descrito por seu modelo de argumento Ty. O argumento de modelo deve ser do formulário Fty(T1, T2, ..., TN), onde Fty é um tipo que pode ser chamado. O modelo determina o tipo de retorno de acordo com para a primeira das seguintes regras que se aplica:

  • if Fty é um ponteiro para o tipo de função R(*)(U1, U2, ..., UN) o tipo de retorno é R;

  • if Fty é uma referência ao tipo de função R(&)(U1, U2, ..., UN) o tipo de retorno é R;

  • if Fty é um ponteiro para o tipo de função de membro R(U1::*)(U2, ..., UN) o tipo de retorno é R;

  • if Fty é um ponteiro para o tipo de membro de dados R U1::* o tipo de retorno é R;

  • if Fty é uma classe com um typedef de membro result_type o tipo de retorno é Fty::result_type;

  • if N é 0 (ou seja, Ty é da forma Fty()) o tipo de retorno é void;

  • if Fty é uma classe com um modelo de membro chamado result o tipo de retorno é Fty::result<T1, T2, ..., TN>::type;

  • em todos os outros casos, ele é um erro.

Exemplo

 

// std_tr1__functional__result_of.cpp 
// compile with: /EHsc 
#include <functional> 
#include <iostream> 
 
double square(double x) 
    { 
    return (x * x); 
    } 
 
template<class Fun, 
    class Arg> 
    void test_result(const Fun& fun, Arg arg) 
    { 
    typename std::tr1::result_of<Fun(Arg)>::type val = fun(arg); 
    std::cout << "val == " << val << std::endl; 
    } 
 
int main() 
    { 
    test_result(&square, 3.0); 
 
    return (0); 
    } 
 
val == 9

Requisitos

Cabeçalho:<functional>

Namespace: std::tr1

Consulte também

Referência

<functional>TR1)