2
C ++ - เหตุใดจึงต้องใช้คำหลัก 'เทมเพลต' ที่นี่
ฉันมีรหัสต่อไปนี้: template <typename TC> class C { struct S { template <typename TS> void fun() const {} }; void f(const S& s) { s.fun<int>(); } }; // Dummy main function int main() { return 0; } เมื่อมีการสร้างนี้มีทั้ง GCC 9.2 และเสียงดังกราว (9.0) ฉันได้รับการรวบรวมข้อผิดพลาดเนื่องจากการคำหลักที่ถูกต้องสำหรับการกล่าวอ้างtemplate funเสียงดังกราวแสดง: error: use 'template' keyword to treat 'fun' …