C++11 result_of deducing my function type failed
问题 I was trying a program below: #include<type_traits> using namespace std; template <class F, class R = typename result_of<F()>::type> R call(F& f) { return f(); } int answer() { return 42; } int main() { call(answer); return 0; } "call(answer)" fails to compile VC says 'R call(F&)' could not deduce template argument for 'R' GCC says |note: template argument deduction/substitution failed:|error: function returning a function I'm not sure if a "function name" could be used for templates. Where