std::allocator_traits<Alloc>:: allocate
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<memory>
|
||
|
static
pointer allocate
(
Alloc
&
a, size_type n
)
;
|
(1) |
(начиная с C++11)
(constexpr начиная с C++20) |
|
static
pointer allocate
(
Alloc
&
a, size_type n, const_void_pointer hint
)
;
|
(2) |
(начиная с C++11)
(constexpr начиная с C++20) |
Использует аллокатор a для выделения n * sizeof ( Alloc :: value_type ) байт неинициализированной памяти. В этой памяти создаётся массив типа Alloc :: value_type [ n ] , но ни один из его элементов не конструируется.
allocate
), вызывает
a.
allocate
(
n
)
.
Содержание |
Параметры
| a | - | используемый аллокатор |
| n | - | количество объектов для выделения памяти |
| hint | - | указатель на ближайшую область памяти |
Возвращаемое значение
Указатель, возвращаемый вызовом a. allocate ( n ) .
Примечания
Alloc::allocate
не требовалось создавать объект массива до
P0593R6
, который сделал использование нестандартного аллокатора для
std::vector
и некоторых других контейнеров не вполне определенным согласно строгому прочтению спецификации основного языка.
После вызова
allocate
и до конструирования элементов арифметика указателей для
Alloc
::
value_type
*
корректно определена в пределах выделенного массива, однако поведение не определено при обращении к элементам.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
выделяет неинициализированную память
(публичная функция-член
std::allocator<T>
)
|