boost::ifind_first 会引发什么样的异常?

What kind of exception is thrown by boost::ifind_first?

本文关键字:什么样 异常 ifind first boost      更新时间:2023-10-16

我一直觉得提升文档读起来相当令人沮丧,尽管我尽了最大的努力,但我无法确定在调用 boost::ifind_first 时可能会抛出什么样的异常。文档指出:

此功能提供了强有力的异常安全保障

但是,没有关于可能引发哪种类型的异常的说明。所以我的主要问题是你如何确定ifind_first可能会抛出什么异常?

这是一个艰难的答案,因为正如您所说,他们的文档可能会使用踢屁股。 话虽如此,当提升说:

此功能提供了强有力的异常安全保障

他们指的是通用组件中的异常安全,其中指出:

强保证提供完整的"提交或回滚"语义。在 对于C++标准容器的情况,这意味着,例如,如果 引发异常时,所有迭代器都保持有效。我们也知道 容器具有与异常之前完全相同的元素 被扔了。失败后没有效果的事务具有明显的 优点:程序状态简单且可预测,在 例外。在C++标准库中,几乎所有的操作 在"基于节点的容器"列表中,设置、多集、映射和多映射 提供有力保障.4(。

我会考虑使用boost::exception类来捕获一般异常,向它提供应该破坏它的数据并弄清楚它从那里抛出什么。