Class template small_vector_allocator
boost::container::small_vector_allocator
Synopsis
Description
Нестандартный распределитель, используемый для реализации<small_vector
>. Пользователи никогда не должны использовать его напрямую. Он описан здесь для целей документации.
Этот распределитель наследует от стандартно-соответствующего распределителя и передает функции члена стандартному распределителю, за исключением случаев, когда внутреннее хранилище используется в качестве источника памяти.
Этот распределитель является «частично_распространяемым» распределителем и определяет<is_partially_propagable
>как истинный_тип.
Частично распространяемый распределитель означает, что не все аллокаторы хранения с помощью экземпляра<small_vector_allocator
>могут быть распределены другим экземпляром этого типа, даже если оба экземпляра сравниваются равными или экземпляр распространяется с другим, используя конструктор копий/перемещений или назначение. Хранилище, которое никогда не может распространяться, определяется<storage_is_unpropagable(p)
>.
<boost::container::vector
>поддерживает частично распространяемые распределители, резервирующиеся на операции глубокого копирования/свопа/перемещения, когда внутреннее хранилище используется для хранения векторных элементов.
<small_vector_allocator
>предполагает, что будет инстанцирован как<boost::container::vector< T,small_vector_allocator<Allocator> >
>и внутреннее хранилище может быть получено ниспровержением этого вектора до<small_vector_base<T>
>.
small_vector_allocator
public
construct/copy/destruct
small_vector_allocator
public member functions
- <
pointerallocate(size_typecount,
const_void_pointerhint=const_void_pointer());
>Выделяет хранение из стандартно-соответствующего распределителя.
- <
voiddeallocate(pointerptr,size_typen)noexcept;
>Выделяет ранее выделенную память. Никогда не бросайте
- <
size_typemax_size()constnoexcept;
>Возвращает максимальное количество элементов, которые можно было бы выделить. Никогда не бросайте
- <
small_vector_allocatorselect_on_container_copy_construction()const;
>
- <
boolstorage_is_unpropagable(pointerp)const;
>
small_vector_allocator
friend functions
- <
friendvoidswap(small_vector_allocator&l,small_vector_allocator&r)noexcept;
>Заменяет двух распределителей, ничего не делает, потому что это<small_vector_allocator
>без гражданства
- <
friendbooloperator==(constsmall_vector_allocator&l,
constsmall_vector_allocator&r)noexcept;
><small_vector_allocator
>всегда сравнивается с истинным, поскольку память, выделенная одним экземпляром, может быть размещена другим экземпляром (за исключением нераспространяемого хранилища)
.
- <
friendbooloperator!=(constsmall_vector_allocator&l,
constsmall_vector_allocator&r)noexcept;
><small_vector_allocator
>всегда сравнивается с ложным, так как память, выделенная одним экземпляром, может быть размещена другим экземпляром
.