编译最简单的代码时VC ++编译器崩溃

时间:2013-11-29 10:29:19

标签: c++ visual-studio visual-c++ c++11 compiler-construction

我的编译器是VC ++ 2013和2013 Novmember CTP。

以下代码使VC ++编译器崩溃并报告:

“致命错误C1001:编译器中发生内部错误。”

template<class T>
class A
{
    operator T*() const
    {
        return p;
    }

    T* p;
};

template<class T>
class B : public A<T>
{
    using A::operator T*;
};

int main()
{}

1 个答案:

答案 0 :(得分:5)

VC ++编译器中可能存在错误,但您的代码仍然不正确:g ++报告error: 'template<class T> class A' used without template parameterslink)。 (在不同的编译器上测试代码通常是一个好主意。)

更改第15行
    using A::operator T*;

    using A<T>::operator T*;

(即将“A”更改为“A<T>”。