result_of Class
Der Rückgabetyp eines eingebundenen aufrufbaren Objekts.
template<class Ty>
struct result_of {
typedef T0 type;
};
Parameter
- Ty
Eine Beschreibung eines Funktionsaufrufs (siehe Abschnitt Hinweise).
Hinweise
Die Vorlagenklasse definiert Membern type als Synonym für den Rückgabetyp eines Funktionsaufrufs, der durch das Vorlagenargument Ty beschrieben wird.Das Vorlagenargument muss im Format Fty(T1, T2, ..., TN) sein, in dem Fty ein aufrufbarer Typ ist.Die Vorlage bestimmt den Rückgabetyp anhand des ersten der folgenden Regeln, das gilt:
Wenn Fty ein Zeiger ist, R(*)(U1, U2, ..., UN)-Typ zu arbeiten, ist der Rückgabetyp R;
Wenn Fty ein Verweis auf den Funktionstyp R(&)(U1, U2, ..., UN) ist, ist der Rückgabetyp R;
Wenn Fty ein Zeiger auf Memberfunktionstyp R(U1::*)(U2, ..., UN) ist, ist der Rückgabetyp R;
Wenn Fty ein Zeiger auf Datenmembertyp R U1::* ist, ist der Rückgabetyp R;
wenn Fty eine Klasse mit einem Member Typedef result_type ist, ist der Rückgabetyp Fty::result_type;
Wenn N 0 ist (das heißt, Ty aus dem Formular Fty() ist), das der Rückgabetyp void ist;
Wenn Fty eine Klasse mit einer Membervorlage ist, die result genannt wird, ist der Rückgabetyp Fty::result<T1, T2, ..., TN>::type;
in allen anderen Fällen ist dies ein Fehler.
Beispiel
// 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);
}
Anforderungen
Header: <functional>
Namespace: std