“异常安全”的两个条件:
- 不泄露任何资源:
- 不允许数据变坏
异常安全函数提供以下三个保证之一:
- 基本保证:如果异常被抛出,程序内任何事物仍然保持在有效状态下。
- 强烈保证:如果异常被跑出,程序状态不改变。copy and swap策略(拷贝一份,对副本修改,再设置回去)。
- 不抛掷保证:承诺绝不跑出异常。
强烈保证,往往能够以copy-and-swap实现出来,但并非对所有的函数都可实现或具备现实意义。
“异常安全”的两个条件:
异常安全函数提供以下三个保证之一:
强烈保证,往往能够以copy-and-swap实现出来,但并非对所有的函数都可实现或具备现实意义。