我总是发现提升文档阅读相当令人沮丧,尽管我付出了最大努力,但我无法确定在调用boost :: ifind_first时可能会抛出什么样的异常。文档说明:
此功能提供强大的异常安全保障
但是没有关于可能抛出什么类型的异常的说明。所以我的主要问题是如何确定ifind_first可以抛出什么异常?
答案 0 :(得分:0)
这是一个艰难的答案,因为正如你所说,他们的文件可以使用屁股。当提升说:
此功能提供强大的异常安全保障
他们引用的是boost::exception
:
强大的保证提供完整的“提交或回滚”语义。在 在C ++标准容器的情况下,这意味着,例如,if 抛出异常所有迭代器仍然有效。我们也知道 容器与异常之前具有完全相同的元素 被扔了。如果失败则没有效果的事务是显而易见的 好处:程序状态简单,可预测 例外。在C ++标准库中,几乎所有的操作 在基于节点的容器列表,集合,多集,映射和多图 提供强有力的保证.4)。
我会考虑使用does exponential averaging for its smoothing类来捕获一般异常,提供应该破坏它的数据并找出它从那里抛出的内容。