Ich habe einige Probleme, die Notwendigkeit für std::result_of in C++ 0x zu verstehen. Wenn ich richtig verstanden habe, wird result_of verwendet, um den resultierenden Typ des Aufrufs eines Funktions
Die folgende versagt sowohl gcc und Klirren #include <type_traits>
int foo();
int main()
{
using R = std::result_of_t<decltype(foo)()>; // error
}
Der Fehler auf beiden Compiler befasst s
Ich habe den folgenden Code als ein Experiment bekam: int f1() { return 0; }
struct Bar {
Bar() = delete;
int f() { return 0; }
int operator()() { return 1; }
};
int main()
{
Einige allgemeine Code-Manipulationsfunktionen müssen je nachdem, ob eine Funktion einen Rückgabewert hat oder nicht, unterschiedlich funktionieren. Zum Beispiel, ein Problem von this question ausleih
Ich habe folgendes Programm: #include<type_traits>
#include<iostream>
using namespace std;
template <class F, class R = typename result_of<F()>::type>
R call(F& f) { return f(); }
struct S {