当我遇到boost::container:allocator_traits::is_partially_propagable时,我正在努力理解boost::container::allocator_traits。
我在网上找不到任何其他关于它的文档,我可以理解 boost::container::allocator_traits 的所有其他成员,除了 is_partially_propagable 和 storage_is_unpropagable。
编辑:
以及,它们是如何实现的,以及如何在编写容器时使用它们?
它(is_partially_propagable
(表示分配器使用内部存储(它有状态(,并且并非所有由它分配的内存都可以由另一个分配器释放,即使两者比较相等。(相同类型的分配器应该始终比较相等且可互换(
storage_is_unpropagable
所做的是获取指向已分配内存的指针,如果这是不可传播的内存,则返回true
。(因为并非所有内存都必须是不可传播的(
这个分配器(small_vector_allocator
(在small_vector
中用作空间优化。
https://www.boost.org/doc/libs/1_65_0/boost/container/small_vector.hpp