簡體   English   中英

C ++期望的主表達式錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM