2017-08-14 86 views
0

我一直发现boost文档相当令人沮丧的阅读,尽管我尽了最大的努力,但我无法确定在boost :: ifind_first的调用中可能会抛出什么样的异常。该文件指出:boost :: ifind_first引发了什么样的异常?

此功能提供了强大的异常安全保证

但是也有可能上抛出异常的类型没有说明。所以我的主要问题是你如何确定ifind_first可能抛出什么异常?

+1

它从不会抛出任何异常,它只传递您传递的回调抛出的异常。 – o11c

回答

0

这是一个艰难的答案,因为如你所说,他们的文档可以使用脚屁股。当升压说是说:

此功能提供了强大的异常安全保证

他们指的Exception-Safety in Generic Components其中规定:

的有力保证提供完整的“commit-或“回滚”语义。在 这个C++标准容器的情况下,这意味着,例如,如果 引发异常,则所有迭代器保持有效。我们也知道 容器与引发异常 之前的元素完全相同。如果事务失败,则无效果的事务具有明显的好处:程序状态很简单并且在 异常的情况下可预测。在C++标准库中,基于节点的容器列表,集合,多重集合,映射和多图的几乎所有操作 都提供了强有力的保证。

我会研究使用boost::exception类来捕捉一个普通的异常,为它提供应该打破它的数据并找出它从那里抛出的数据。

+0

不是一个完整的答案,但我想通过发布部分内容会让它脱颖而出。 –

相关问题