我正面对此错误消息:
错误C1001:编译器中发生内部错误
它出现在Debug
模式下。没有任何关于为什么会发生这种情况的线索。编译器没有给我任何关于该行的提示。当我点击错误时,我会将空白文件称为xxx.obj
。
平台:
答案 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);
一切都运作良好。