2
ความแตกต่างระหว่าง std :: result_of และ Decltype
ฉันมีปัญหาในการทำความเข้าใจความจำเป็นstd::result_ofใน C ++ 0x ถ้าฉันเข้าใจถูกต้องresult_ofใช้เพื่อรับชนิดผลลัพธ์ของการเรียกใช้อ็อบเจ็กต์ฟังก์ชันด้วยพารามิเตอร์บางประเภท ตัวอย่างเช่น: template <typename F, typename Arg> typename std::result_of<F(Arg)>::type invoke(F f, Arg a) { return f(a); } ฉันไม่เห็นความแตกต่างกับรหัสต่อไปนี้: template <typename F, typename Arg> auto invoke(F f, Arg a) -> decltype(f(a)) //uses the f parameter { return f(a); } หรือ template <typename F, typename Arg> auto invoke(F …