命名空间
变体
操作

std::uninitialized_construct_using_allocator

来自 cppreference.cn
< cpp‎ | memory
 
 
内存管理库
(仅供演示*)
未初始化内存算法
(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)

通过uses-allocator 构建的方式,在由 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

[编辑] 示例

[编辑] 参见

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