std::allocator<T>::construct
来自 zh.cppreference.net
| 定义于头文件 <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 中移除) |
构造一个 T 类型的对象,位于 p 指向的已分配但未初始化的存储中,使用全局布置 new。
1) 调用
::new((void*)p) T(val).2) 调用
::new((void*)p) U(std::forward<Args>(args)...).参数
| p | - | 指向已分配未初始化存储的指针 |
| val | - | 用作拷贝构造函数参数的值 |
| args... | - | 使用的构造函数参数 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用标准 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 402 | C++98 | 若存在 T :: operator new ,程序可能不符合规范 | 改用全局替换 new 操作符 |
参见
|
[static]
|
在已分配的存储中构造对象
(函数模板) |
|
(C++20)
|
在给定地址创建对象
(函数模板) |
|
分配函数
(函数) |