CRTC没有默认构造函数

时间:2015-07-01 17:57:15

标签: c++ crtp icc

我在弄清楚这是否是我的编译器的问题时遇到了一些麻烦:

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(我必须使用此项目)。

1 个答案:

答案 0 :(得分:0)

代码是正确的。

icpc 的可能解决方法是完全指定基类:

C(int i) : B<C>(i) {}
相关问题