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
当我遇到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