【发布时间】:2019-07-24 13:47:41
【问题描述】:
英语不是我的母语。所以有时阅读 C++ 标准我无法理解所写的内容。 这是一个这样的误解。
在C++ 20 Standard(14.1 Throwing an exception)中有这样写
- ...异常对象的潜在破坏点是:
(4.1) — 当异常的活动处理程序以任何方式退出时 除了重新抛出,在对象销毁后立即 (如果有的话)在处理程序的异常声明中声明;
(4.2) — 当 std::exception_ptr (17.9.6) 类型的对象引用 到异常对象被销毁,在析构函数之前 std::exception_ptr 返回。
然后
在异常对象的所有潜在破坏点中, 有一个未指定的最后一个异常对象被销毁。所有其他点都发生在最后一点之前。
什么是“最后的毁灭点”?它在标准中的含义是什么?
似乎已经列出了异常对象的所有潜在破坏点。
【问题讨论】:
-
All other points happen before that last one.- 哈哈,别开玩笑了... -
-
可能。这只是我觉得有趣的措辞。
-
@500-InternalServerError 是的,这也让我发笑。顶级法律术语:)
-
@VladfromMoscow 异常对象是单个对象。所以它只能有一个潜在破坏点。它只能有一个实际破坏点,你确实想说。 什么是“未指定的最后一点” «异常对象被销毁的地方»。
标签: c++ exception language-lawyer destructuring