Linux g++错误:模板成员函数的形式参数之前的“预期)”
我在以下代码中遇到此错误:Linux g++错误:模板成员函数的形式参数之前的“预期)”,linux,g++,Linux,G++,我在以下代码中遇到此错误: #include <FWCacheEntry> template<class T> class LoggerConfigCacheEntry : public FWCacheEntry<T> { public: LoggerConfigCacheEntry(FWCacheEntryData data) : FWCacheEntry<T>(data) //Error in this line {
#include <FWCacheEntry>
template<class T> class LoggerConfigCacheEntry : public FWCacheEntry<T>
{
public:
LoggerConfigCacheEntry(FWCacheEntryData data) : FWCacheEntry<T>(data) //Error in this line
{
ResetCacheEntryScoreCounters();
}
...
};
这段代码可以在Solaris中干净地编译,但不能在Linux中编译。我已经读到这个错误通常是由于引用了未知的东西,但是包含在那里
你能帮我吗
谢谢我相信您需要: 完全限定名称; 添加typename关键字以显式地告诉编译器它是一个类型而不是静态变量; 因此,你需要改变:
LoggerConfigCacheEntry (FWCacheEntryData data)
: FWCacheEntry <T> (data)
关于:
有很多相关的问题:
;
;
你的问题;
等
有一种叫做模板专门化的东西,它使得查找依赖未知模板参数的名称变得不可能。FWCacheEntryData就是这样一个名字。感谢您的回复,它成功了!这个错误与另一个问题非常相似,事实上,我需要更好地研究这个模板问题。再次感谢。
LoggerConfigCacheEntry (FWCacheEntryData data)
: FWCacheEntry <T> (data)
LoggerConfigCacheEntry (typename FWCacheEntry <T>::FWCacheEntryData data)
: FWCacheEntry <T> (data)