[英]C++ expected primary-expression error
當使用g ++編譯以下代碼時,我在'int''錯誤之前得到了'預期的primary-expression'。 你知道為什么以及如何解決它嗎? 謝謝 !
struct A
{
template <typename T>
T bar() { T t; return t;}
};
struct B : A
{
};
template <typename T>
void foo(T & t)
{
t.bar<int>();
}
int main()
{
B b;
foo(b);
}
編譯foo()
函數時,編譯器不知道bar是成員模板 。 你必須告訴它:
template <typename T>
void foo(T & t)
{
t. template bar<int>(); // I hope I put template in the right position
}
編譯器認為bar只是一個成員變量,並且您嘗試將其與某些內容進行比較,例如t.bar < 10
。 結果,它抱怨“int”不是表達。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.