错误C1001:在调试模式下编译器发生内部错误

时间:2016-02-29 11:09:39

标签: c++ visual-studio-2013

我正面对此错误消息:

  

错误C1001:编译器中发生内部错误

它出现在Debug模式下。没有任何关于为什么会发生这种情况的线索。编译器没有给我任何关于该行的提示。当我点击错误时,我会将空白文件称为xxx.obj

平台:

  • Visual Studio 2013
  • Intel i7
  • Windows 8

1 个答案:

答案 0 :(得分:1)

在深入研究我得到的警告后,我想出了问题。有一个suspecios是:

  

警告C4239:使用非标准扩展名:'参数':   从'T'转换为'T&'

此警告是因为这一行:

auto x = foo(bar{});

函数foo声明如下:

int foo(bar&);

这种行为并不像以下所述:Is it possible to know if the parameter was defaulted。但是,MSVS支持此行为作为非标准扩展。

通常它运行良好没有任何问题,但由于该项目中的未知事情,它不起作用。

用这两行修正后:

bar temp{};
auto x = foo(temp);

一切都运作良好。