4

当我遇到 boost::container::allocator_traits::is_partially_propagable 时,我试图理解boost::container::allocator_traits 。

我在网上找不到任何其他关于它的文档,我可以理解 boost::container::allocator_traits 的所有其他成员,除了 is_partially_propagable 和 storage_is_unpropagable。

编辑:

以及,它们是如何实现的以及在编写容器时如何使用它们?

4

1 回答 1

5

It ( 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

于 2018-05-11T23:53:48.873 回答