为什么 std::scope_success 析构函数检查未捕获的异常是小于还是等于

Why does the std::scope_success destructor check if uncaught exceptions are less or equal

提问人:tmlen 提问时间:7/31/2023 更新时间:7/31/2023 访问量:95

问:

根据

https://en.cppreference.com/w/cpp/experimental/scope_success/~scope_success

析构函数检查当前未捕获异常 (std::uncaught_exceptions) 的数量是否小于或等于构造时的数量。std::scope_success

它将其与前一个值(在其构造上)而不是零进行比较是有道理的,因此可以在堆栈展开期间使用。scope_success

但是,为什么它会检查计数是小于还是相等,而不仅仅是相等呢?有没有一种情况,其析构函数比构造函数低?std::uncaught_exceptions

C++ 异常 语言-律师 RAII

评论

1赞 Quimby 7/31/2023
它是一个可移动的对象,因此您可以在展开过程中创建它,将其移动到某个存储中,然后以完全不相关的计数值销毁它。但这使得比较毫无意义,因此用例可能根本没有意义。

答: 暂无答案