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>всегда сравнивается с ложным, так как память, выделенная одним экземпляром, может быть размещена другим экземпляром
 .