【发布时间】:2015-07-01 17:57:15
【问题描述】:
我无法确定这是否是我的编译器的问题:
class A
{
public:
A(int i) {}
};
template <typename T>
class B : public A
{
public:
B(int i) : A(i) {}
T test() {return T(10);}
};
class C : public B<C>
{
public:
C(int i) : B(i) {}
};
int main()
{
C c(5);
}
错误:类模板“B”的参数列表丢失
此代码在 Visual Studio 2012 中似乎可以正确编译,但它不适用于 icpc 9.1(我必须在此项目中使用它)。
【问题讨论】:
-
你的意思是
C(int i) : B<C>(i) {} -
@Jarod42:这可能会解决问题,但语言不需要它。
-
Class A可以删除,对吧? -
好像是编译器bug:stackoverflow.com/questions/8887864/…