result_of (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

El tipo de valor devuelto de un objeto de contenido que se puede llamar.

estructura result_of {
TypeDef T0 tipo;
};

Parámetros

Ty
Una descripción de una llamada de función (vea la sección Comentarios sección).

La clase de plantilla define su miembro type como sinónimo para el tipo de valor devuelto de una llamada de función descrito por su argumento de plantilla Ty. El argumento de plantilla debe tener el formato Fty(T1, T2, ..., TN), donde Fty es un tipo que se puede llamar. La plantilla determina el tipo de valor devuelto según la primera de las siguientes reglas que se aplica:

  • Si Fty es un puntero al tipo de función R(*)(U1, U2, ..., UN) el tipo devuelto es R;

  • Si Fty es una referencia al tipo de función R(&)(U1, U2, ..., UN) el tipo devuelto es R;

  • Si Fty es un puntero al tipo de función de miembro R(U1::*)(U2, ..., UN) el tipo devuelto es R;

  • Si Fty es un puntero al tipo de miembro de datos R U1::* el tipo devuelto es R;

  • Si Fty es una clase con una definición de tipo de miembro result_type el tipo devuelto es Fty::result_type;

  • Si N es 0 (es decir, Ty tiene la forma Fty()) el tipo devuelto es void;

  • Si Fty es una clase con una plantilla de miembro denominada result el tipo devuelto es Fty::result<T1, T2, ..., TN>::type;

  • en los demás casos es un error.

Â

// 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::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  

Encabezado:<>>

Espacio de nombres: std

Mostrar: