ฉันกำลังลองใช้โปรแกรมด้านล่าง:
#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 (F&)' ไม่สามารถสรุปอาร์กิวเมนต์เทมเพลตสำหรับ 'R'
GCC ระบุว่า |หมายเหตุ: การหักล้าง/การทดแทนอาร์กิวเมนต์เทมเพลตล้มเหลว:|ข้อผิดพลาด: ฟังก์ชันส่งคืนฟังก์ชัน
ฉันไม่แน่ใจว่า "ชื่อฟังก์ชัน" สามารถใช้กับเทมเพลตได้หรือไม่ ฉันผิดพลาดตรงไหน จะทำให้การโทร (รับสาย) ทำงานได้อย่างไร?