從錯誤信息的字面意思可以看出來是 XXXXX 不能作為模板定義。
但是為什麼不能,並沒有說明,最後我翻閱各種資料,各種嘗試後,發現往往可能是由於找不到模板函數的某個參數的定義而導致的。
1 template<typename T> 2 BOOL Func(T &t_vaule, MyStruct &st);
上面這段函數,如果你沒有定義 MyStruct 結構體,或者忘記引入了 MyStruct 的頭文件,那麼就會報 C2998 的錯誤。
如果你的模板函數的某個參數用了 STL 的一些容器,那麼也不要忘記引入對應的頭文件或者加上命名空間 std.