Я пробовал программу ниже:
#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;
}
«вызов (ответ)» не компилируется
VC говорит, что «R call (F &)» не может вывести аргумент шаблона для «R»
GCC говорит | примечание: вывод/подстановка аргумента шаблона не удалась: | ошибка: функция возвращает функцию
Я не уверен, можно ли использовать «имя функции» для шаблонов. Где я ошибся, как заставить мой звонок(ответ) работать?