向量调整大小抛出bad_alloc会使原始数据无效吗?

ezo*_*zod 2 c++ containers stl vector boost-interprocess

std::vector::resize()抛出一个std::bad_alloc异常,是原始数据仍然有效和可访问的std::vector对象?

答案是否适用于其他分配器,例如if boost::interprocess::allocator是否用作分配器,并且boost::interprocess::bad_alloc被抛出?

Fra*_*eux 5

std::vector::resize 是例外的安全.

如果抛出异常,则此函数无效(强异常保证).

链接到异常规范.规范没有提到对分配器的任何特定要求,并且无论您提供的分配器如何,都必须保留.