跳到主要内容

std::uninitialized_construct_using_allocator

定义于内存
自 C++20 起
template< class T, class Alloc, class... Args >
constexpr T* uninitialized_construct_using_allocator( T* p, const Alloc& alloc, Args&&... args );

通过“使用分配器构造”在由 p 指示的未初始化内存位置创建给定类型 T 的对象。

等同于

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

示例

本节不完整

std::uninitialized_construct_using_allocator

定义于内存
自 C++20 起
template< class T, class Alloc, class... Args >
constexpr T* uninitialized_construct_using_allocator( T* p, const Alloc& alloc, Args&&... args );

通过“使用分配器构造”在由 p 指示的未初始化内存位置创建给定类型 T 的对象。

等同于

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

示例

本节不完整