ฉันเล่นกับเสียงดังมาระยะหนึ่งแล้วและฉันก็สะดุดกับ "test / SemaTemplate / depend-template-recover.cpp" (ในการแจกแจงเสียงดัง) ซึ่งควรให้คำแนะนำในการกู้คืนจากข้อผิดพลาดของเทมเพลต
สิ่งทั้งหมดสามารถถอดออกเป็นตัวอย่างเล็กน้อยได้อย่างง่ายดาย:
template<typename T, typename U, int N> struct X {
void f(T* t)
{
// expected-error{{use 'template' keyword to treat 'f0' as a dependent template name}}
t->f0<U>();
}
};
ข้อความแสดงข้อผิดพลาดที่เกิดจากเสียงดังลั่น:
tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name
t->f0<U>();
^
template
1 error generated.
... แต่ฉันมีความเข้าใจยากว่าควรจะแทรกtemplate
คีย์เวิร์ดตรงไหนเพื่อให้โค้ดถูกต้องตามหลักไวยากรณ์?