c++ - 编译一段最简单的代码时,VC++ 编译器崩溃

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

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

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

“ fatal error 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 (link)。 (在不同的编译器上测试代码通常是个好主意。)

从第 15 行更改

    using A::operator T*;

    using A<T>::operator T*;

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

关于c++ - 编译一段最简单的代码时,VC++ 编译器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20283565/

相关文章:

javascript - 在 Visual Studio 中折叠 JavaScript 代码

c++ - 禁用特定 MSVC 版本的优化

c++ - 来自 Win32 API 的 ReadFile 函数

c++ - 如何将 MFC 控件连接到可视对话框编辑器中的自定义控件

c++ - 段错误 C++ Sundaram

c++ - 根据模板参数命名成员函数

c++ - 不要在发布时显示控制台窗口但在调试时显示

C++ VBO 渲染问题

visual-studio - 我没有 Razor Editor(即使我安装了 mvc 3.0)

c - Truecrypt源代码文件