我刚刚注意到
http://en.cppreference.com/w/cpp/error/uncaught_exception
那个 C++17 将替换std::uncaught_exception()
, 它返回一个bool
, with std::uncaught_exceptions()
, 它返回一个int
.
对描述这一点的标准的补充如下:
http://isocpp.org/files/papers/n4259.pdf
它没有提供理由,但确实说
[注意:当 uncaught_exceptions() > 0 时,抛出异常会导致调用 std::terminate() (15.5.1)。– 结束注]
这是奇怪的模糊。
这种变化的原因是什么?在 C++17 或标准的某些未来版本中是否会出现多个活动异常?