2016-02-29 87 views
-1

我面对此错误消息内部错误:错误C1001:发生在调试模式下,编译

错误C1001:发生在编译

内部错误看起来只是在Debug模式下。没有线索说明为什么会发生这种情况。编译器不会给我任何提示。当我点击这个错误时,它会带我去空白名为xxx.obj的文件。

平台:

  • 的Visual Studio 2013
  • 英特尔酷睿i7
  • 的Windows 8
+0

http://stackoverflow.com/help/mcve是,尽管自回答问题。 –

+0

有人删除了评论吗? –

+0

没有? –

回答

1

我挖成我收到警告后想通的问题。有一个suspecios其中之一是:

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

该警告是因为这一行的:

auto x = foo(bar{}); 

函数foo声明如下:

int foo(bar&); 

这behavouir不standared因为在这里discuueed:Is it possible to know if the parameter was defaulted。但是,MSVS支持这种行为作为非标准扩展。

通常它没有任何问题,但由于在这个项目中的不知名的事情,它没有任何问题的工作。

与这两条线修正完后:

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

一切运作良好。

+0

你得到它沉默,但没有发现触发编译器内部问题的实际例子。 –

+0

是的,它是正确的。但是,我只是想通知使用此扩展可能导致不良行为。 –

相关问题