【发布时间】:2016-11-14 11:43:17
【问题描述】:
成员函数at() 的异常,我想不出异常是由std::vector 函数引发的,而是由其分配器或其元素构造函数和赋值运算符引发的。因此,在实现自己的分配器时,异常中立性可能是非常理想的保证。例如,您可以预先分配所有需要的内存,然后依靠分配器的 noexcept 保证传播到其容器。
C++ 标准是否提供std::vector<T,Alloc> 的异常中立性?
【问题讨论】:
-
“你可能会分配所有需要的内存”如果你不能这样做怎么办?
-
准确定义“异常中立”一词对您的含义
-
@Arunmu 如果你做不到,那就早点扔。
-
@DavidHaim 见stackoverflow.com/questions/16770012/…。
标签: c++ c++11 exception vector