Ale*_*iev 2 c++ allocator language-lawyer
抛出:
allocate可能抛出适当的异常。
其他地方暗示的“适当”有什么限制吗?
有效的自定义分配器可以double在任何请求上抛出 a 吗?
上下文:使用分配器的函数的实现noexcept,但具有后备策略,以便在所有分配失败时执行某些操作。
其他地方暗示的“适当”有任何限制吗?
不。“适当”限定词没有客观意义。这实际上是一个使用常识的建议。抛出的类型没有限制allocate。
有效的自定义分配器可以在任何请求上抛出一个 double 吗?
如果作者认为 double 合适,那就符合要求了。我自己并不认为它“合适”,但这取决于作者的决定。
上下文:使用分配器的 noexcept 函数的实现,但具有后备策略,以便在所有分配失败时执行某些操作。
您应该使用一个包罗万象的块:
try {
ptr = a.allocate();
} catch(...) {
// deal with it
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |