# std::uninitialized_construct_using_allocator

< cpp‎ | memory

定义于头文件 `<memory>` |  |
template< class T, class Alloc, class... Args > constexpr T* uninitialized_construct_using_allocator( T* p, const Alloc& alloc, Args&&... args ); |  | (C++20 起)

以使用分配器构造的手段在 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 (C++11) | 检查指定的类型是否支持使用分配器的构造 (类模板)
make_obj_using_allocator (C++20) | 以使用分配器构造的手段创建给类型的对象 (函数模板)