# std::allocator<T>::construct

< cpp‎ | memory‎ | allocator

定义于头文件 `<memory>` |  |
void construct( pointer p, const_reference val ); | (1) | (C++11 前)
template< class U, class... Args > void construct( U* p, Args&&... args ); | (2) | (C++11 起) (C++17 中弃用) (C++20 中移除)

用布置 new ，在 `p` 所指的未初始化存储中构造 `T` 类型对象。

1) 调用 new((void *)p) T(val)
2) 调用 ::new((void *)p) U(std::forward<Args>(args)...)

### 参数

p | - | 指向未初始化存储的指针
val | - | 用作复制构造函数参数的值
args... | - | 所用的构造函数参数

### 返回值

（无）

### 参阅

construct [静态] | 在分配的存储构造对象 (函数模板)
operator new operator new[] | 分配函数 (函数)