Saya sedang mencoba program di bawah ini:
#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;
}
"panggilan (jawaban)" gagal dikompilasi
VC mengatakan 'R call(F&)' tidak dapat menyimpulkan argumen templat untuk 'R'
GCC mengatakan |catatan: pengurangan/substitusi argumen templat gagal:|kesalahan: fungsi mengembalikan suatu fungsi
Saya tidak yakin apakah "nama fungsi" dapat digunakan untuk templat. Di mana kesalahan saya, bagaimana agar panggilan (jawaban) saya berfungsi?