Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

result_of (Clase)

El tipo de un objeto accesible que contiene.

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

Ty

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

La clase de plantilla define su miembro type como sinónimo del tipo de valor devuelto de una llamada de función descrita por el argumento Tyde la plantilla. El argumento de plantilla debe tener el formato Fty(T1, T2, ..., TN), donde es un tipo Fty accesible. La plantilla determina el tipo de valor devuelto como el primer de las reglas siguientes que se aplica a:

  • si Fty es un puntero a tipo de función R(*)(U1, U2, ..., UN) return-type es R;

  • si Fty es una referencia a la función escriba R(&)(U1, U2, ..., UN) que el tipo de valor devuelto es R;

  • si Fty es un puntero a la función miembro escriba R(U1::*)(U2, ..., UN) que el tipo de valor devuelto es R;

  • si Fty es un puntero al miembro de datos escriba R U1::* que el tipo de valor devuelto es R;

  • si Fty es una clase con una definición result_type miembro return-type es Fty::result_type;

  • si N es 0 (es decir, Ty tiene el formato Fty()) que el tipo de valor devuelto es void;

  • si Fty es una clase con una plantilla de miembro denominada result return-type es Fty::result<T1, T2, ..., TN>::type;

  • en todos 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: <functional>

Espacio de nombres: std

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft