命名空间
变体
操作

std::uninitialized_construct_using_allocator

来自 cppreference.cn
< cpp‎ | 内存
 
 
内存管理库
(仅作说明*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
uninitialized_construct_using_allocator
(C++20) 
内存资源
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(直到 C++20*)
(直到 C++20*)
显式生命周期管理
 
定义于头文件 <memory>
template< class T, class Alloc, class... Args >

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

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

在由 p 指示的未初始化内存位置,通过 uses-allocator 构造 创建给定类型 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

[编辑] 示例

[编辑] 参阅

检查指定类型是否支持 uses-allocator 构造
(类模板) [编辑]
通过 uses-allocator 构造创建给定类型的对象
(函数模板) [编辑]