避免在析构函数中调用 exit 函数
8.17 ID_exitCallInDestructor
程序调用 exit 后,具有静态或线程存储期的对象开始析构,如果这种对象的析构函数再调用 exit 会导致标准未定义的行为,为规避意料之外的错误,应统一要求在析构函数中避免直接或间接地调用 exit。
示例:
class T {
....
public:
~T() {
exit(1); // Non-compliant
}
};
依据
ISO/IEC 14882:2003 3.6.1(4)-undefined
ISO/IEC 14882:2011 3.6.1(4)-undefined