【发布时间】:2014-01-29 10:28:17
【问题描述】:
该程序在使用 VC12(在 Visual Studio 2013 RTM 中)[1] 编译时会导致崩溃(在所有构建配置中),而实际上它不应该:
#include <string>
void foo(std::string const& oops = {})
{
}
int main()
{
foo();
}
我知道两个可能相关的无声的错误代码生成错误:
- https://connect.microsoft.com/VisualStudio/feedback/details/800364/initializer-list-calls-object-destructor-twice
- http://connect.microsoft.com/VisualStudio/feedback/details/800104/
老实说,我认为这些是不同的。有谁知道
- 在连接上是否存在主动跟踪的错误
- 是否有解决方法(或明确描述导致此错误的情况,以便我们可以在代码库中查找/避免它)?
[1] 只需使用 C++ 控制台应用程序“向导”创建一个空项目。为简单起见,禁用预编译头并保留所有默认值:http://i.stack.imgur.com/rrrnV.png
【问题讨论】:
-
return 0;丢失但似乎不相关... -
@Mario,不需要。也不相关。
-
@Sehe connect.microsoft.com/VisualStudio/feedback/details/809243/… 怎么样?我不知道它是否相关或相关。
-
@remyabel 谢谢!这正是我一直在寻找的。如果您介意发布作为答案(如果您愿意,我可以添加一些解决方法),我们可以将其作为答案。
-
看起来这是一般情况下的问题vc++ Vs clang and gcc。
标签: c++ visual-c++ visual-studio-2013 compiler-bug