boost :: ifind_first会抛出什么样的异常?

时间:2017-08-14 19:03:46

标签: c++ boost

我总是发现提升文档阅读相当令人沮丧,尽管我付出了最大努力,但我无法确定在调用boost :: ifind_first时可能会抛出什么样的异常。文档说明:

  

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

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

1 个答案:

答案 0 :(得分:0)

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

  

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

他们引用的是boost::exception

  

强大的保证提供完整的“提交或回滚”语义。在   在C ++标准容器的情况下,这意味着,例如,if   抛出异常所有迭代器仍然有效。我们也知道   容器与异常之前具有完全相同的元素   被扔了。如果失败则没有效果的事务是显而易见的   好处:程序状态简单,可预测   例外。在C ++标准库中,几乎所有的操作   在基于节点的容器列表,集合,多集,映射和多图   提供强有力的保证.4)。

我会考虑使用does exponential averaging for its smoothing类来捕获一般异常,提供应该破坏它的数据并找出它从那里抛出的内容。