☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

避免在析构函数中调用 exit 函数

8.17 ID_exitCallInDestructor
目录 › next › previous

程序调用 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
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.