std::uninitialized_construct_using_allocator
Определён в заголовочном файле <memory> | ||
|---|---|---|
template< class T, class Alloc, class... Args >
constexpr T* uninitialized_construct_using_allocator( T* p,
const Alloc& alloc,
Args&&... args );
| (начиная с C++20) |
Создаёт объект заданного типа T с помощью конструирования с использованием аллокатора в неинициализированной области памяти, на которую указывает p.
Эквивалентно
return std::apply(
[&]<class... Xs>(Xs&&...xs)
{
return std::construct_at(p, std::forward<Xs>(xs)...);
},
std::uses_allocator_construction_args<T>(alloc, std::forward<Args>(args)...));
Параметры
| p | - | область памяти, в которой будет размещён объект |
| alloc | - | используемый аллокатор |
| args | - | аргументы, передаваемые конструктору T |
Возвращаемое значение
Указатель на вновь созданный объект типа T.
Исключения
Может выбросить любое исключение, выброшенное конструктором T, обычно включая std::bad_alloc.
Пример
См. также
|
(C++11) | проверяет, поддерживает ли указанный тип конструирование с использованием аллокатора (шаблон класса) |
|
(C++20) | создаёт объект заданного типа с помощью конструирования с использованием аллокатора (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/uninitialized_construct_using_allocator