【发布时间】:2011-05-18 18:46:16
【问题描述】:
我想知道,如果我使用-fno-exceptions 选项来禁用异常处理来编译我的程序,new T 还会抛出bad_alloc 吗?
或者编译器(GCC 和 clang 支持该选项)是否会将 new T 的使用隐式转换为 new (nothrow) T?
【问题讨论】:
-
有趣的问题。但是,为什么要禁用它?
-
我不想禁用它:)
-
只是好奇,您是否正在处理经常抛出
bad_alloc的代码? -
我不处理任何代码。我只是在处理空中的想法。
-
由于 C++ 标准不考虑这种情况,并且由于许多标准库实现假设(由于标准)分配器总是返回有效的内存块(这是有保证的),你将不得不放弃在这样一个程序中的标准库......因此提供您自己的
new和delete,我猜。