boost::container::allocator_traits::is_partially_propagable 是什么意思?

What does boost::container::allocator_traits::is_partially_propagable mean?

当我遇到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 所做的是获取指向已分配内存的指针,如果这是不可传播的内存,则 return true。 (因为并非所有内存都必须是不可传播的)

此分配器 (small_vector_allocator) 在 small_vector 中用作 space 优化。

https://www.boost.org/doc/libs/1_65_0/boost/container/small_vector.hpp