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

VC++ compiler crashes when compiling a simplest piece of code

本文关键字:VC++ 编译器 崩溃 最简单 代码 编译      更新时间:2023-10-16

我的编译器是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()
{}

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

从更改第15行

    using A::operator T*;

    using A<T>::operator T*;

(即将"A"更改为"A<T>")。