Allocator concept和 std::allocator_traits没有说明 allocate
是否会抛出。
所以当我使用分配器编写容器时,如何知道是检查返回类型还是使用 catch
?
最佳答案
您引用的页面的Requirements 部分中的表格提供了足够的信息,说明何时可以抛出异常以及何时不得抛出异常。下面是分配器可能抛出异常的引用。
a.allocate(n)
allocates storage suitable for n objects of typeT
, but does not construct them. May throw exceptions.
那里没有描述抛出什么类型的异常,可能取决于实现。在STL中一般是std::bad_alloc
。
关于c++ - C++ allocator::allocate 是否应该抛出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50312496/