由分配器类型提供的非平凡指针的构造抛出异常

C++ - could construction of a non-trivial pointer supplied by an allocator type throw an exception?

本文关键字:指针 抛出异常 分配器 类型      更新时间:2023-10-16

这个问题不仅限于c++内置的指针类型(shared_ptr等),还包括任何自定义的指针类型,这些类型可能在c++中定义并作为标准兼容分配器的一部分包含。

非平凡指针的构造,例如由自定义分配器(std::allocator_traits::pointer)提供的指针是否会抛出异常,如果是,为什么?

[分配器。/4类型为X的分配器应满足CopyConstructible(17.6.3.1)的要求。X::pointerX::const_pointerX::void_pointerX::const_void_pointer类型应满足NullablePointer(17.6.3.3)的要求。这些类型上的构造函数、比较操作符、复制操作、移动操作或交换操作都不能通过异常退出…

强调我的