visual studio -这(崩溃)是VS2012 c++编译器中的一个bug吗?
visual studio - Is this (crash) a bug in VS2012 c++ compiler
我正在用c++, Visual Studio 2012 (Professional, Update 4)编译以下代码
class dum {
stringstream *ss;
~dum() {
delete ss;
}
public:
dum() : ss(NULL) {}
};
int main()
{
dum a;
return 0;
}
现在我知道私有析构函数会强制只分配堆分配的对象,但我预计会出现编译错误。相反,我得到一个标题为"Microsoft (R) C/c++优化编译器"的窗口,上面写着
Microsoft (R) C/c++优化编译器停止工作。Windows可以在线检查问题的解决方案
,然后通常提示联机,没有发生任何事情(或得到解决)。是我做错了什么,还是我偶然发现了编译器中的错误?
编辑
我发布的代码是win32控制台程序中存在的所有内容(即使main()也有这种无参数形式),唯一包含的头文件是sstream
。
尝试编译固定版本:
#include <sstream>
using namespace std;
class dum {
stringstream *ss;
~dum() {
delete ss;
}
public:
dum() : ss(NULL) {}
};
int main()
{
dum a;
return 0;
}
给了我以下编译错误。在VS2012 Ultimate Version 11.061030.00 Update4.
1>------ Build started: Project: dum, Configuration: Debug Win32 ------
1> dum.cpp
1>c:usersrandmaniacdocumentsvisual studio 2012projectsdumdumdum.cpp(19): error C2248: 'dum::~dum' : cannot access private member declared in class 'dum'
1> c:usersrandmaniacdocumentsvisual studio 2012projectsdumdumdum.cpp(8) : see declaration of 'dum::~dum'
1> c:usersrandmaniacdocumentsvisual studio 2012projectsdumdumdum.cpp(6) : see declaration of 'dum'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
在我最近安装的VS2012中没有崩溃
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 我正在用 c++ 制作一个小时钟,但遇到了"bug"或某种问题
- 这个std::vector和std::shared_ptr内存泄漏是一个bug吗
- c++ 指向另一个类 bug "no operator matches these operands."的指针
- 奇怪的bug-子例程只运行一个cout
- 我用STL写了一个bin_search,但这是一个小BUG
- 在一个简单的策略模式的bug
- for循环中的奇怪行为-一个bug
- 可变模板元编程:clang++或g++中的一个bug
- 这是GCC中的一个bug吗?
- MSVC 2013 Bug?正在从映射的容器中检索最后一个元素
- 我最近在使用abs()时遇到了一个奇怪的bug
- libc++ std::search_n中的崩溃是一个bug吗?
- 在Qt中重现一个bug:调试代码时出现分段错误
- 这是g++中的一个bug吗?
- visual studio -这(崩溃)是VS2012 c++编译器中的一个bug吗?
- 一个非常简单的加法程序(c++)上的奇怪bug
- 这是Mac OS X 10.6 c++ std API中的一个bug吗?
- 调用mysql_close获取堆栈损坏,这是MySQL中的一个bug吗?