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)
Defined in header <memory>
template < class T, class Alloc, class ... Args >

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

Args && ... args ) ;
(since C++20)

Creates an object of the given type T by means of uses-allocator construction at the uninitialized memory location indicated by p .

Equivalent to

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)...));

Contents

Parameters

p - the memory location where the object will be placed
alloc - the allocator to use
args - the arguments to pass to T's constructor

Return value

Pointer to the newly-created object of type T .

Exceptions

May throw any exception thrown by the constructor of T , typically including std::bad_alloc .

Example

See also

checks if the specified type supports uses-allocator construction
(class template)
creates an object of the given type by means of uses-allocator construction
(function template)