内存回收函数不可抛出异常
7.9 ID_throwInDelete
内存回收函数抛出异常会导致标准未定义的行为。
示例:
class A {
....
public:
void operator delete(void* p) {
if (!p) {
throw Exception(); // Non-compliant, undefined behavior
}
....
}
};
相关
依据
ISO/IEC 14882:2003 15.2(3)
ISO/IEC 14882:2011 3.7.4.2(3)-undefined
ISO/IEC 14882:2011 15.2(3)