Что означает boost :: container :: allocator_traits :: is_partially_propagable?

Я пытался понять повышение :: контейнер :: allocator_traits когда я столкнулся с boost :: container :: allocator_traits :: is_partially_propagable.

Я не могу найти какой-либо другой документ об этом в Интернете, и я могу понять всех остальных членов boost :: container :: allocator_traits, кроме is_partially_propagable и storage_is_unpropagable.

Редактировать:

И как они реализованы и как их использовать при написании контейнера?

4

Решение

Это (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

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]