Namespaces
Variants

std:: uninitialized_construct_using_allocator

From cppreference.net
Memory management library
( exposition only* )
Allocators
uninitialized_construct_using_allocator
(C++20)
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
Определено в заголовке <memory>
template < class T, class Alloc, class ... Args >

constexpr T * uninitialized_construct_using_allocator ( T * p,
const Alloc & alloc,

Args && ... args ) ;
(начиная с C++20)

Создает объект заданного типа T с помощью uses-allocator конструирования в неинициализированной области памяти, указанной 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 .

Пример

Смотрите также

проверяет, поддерживает ли указанный тип uses-allocator construction
(шаблон класса)
создаёт объект заданного типа посредством uses-allocator construction
(шаблон функции)