命名空间
变体
操作

std::allocator<T>::construct

来自 cppreference.cn
< cpp‎ | memory‎ | allocator
 
 
内存管理库
(仅为演示目的*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
垃圾回收支持
(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>
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 中移除)

p 指向的已分配但未初始化的存储中,使用全局 placement-new 构造类型为 T 的对象。

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

目录

[edit] 参数

p - 指向已分配但未初始化的存储的指针
val - 用作复制构造函数参数的值
args... - 要使用的构造函数参数

[edit] 返回值

(无)

[edit] 缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

DR 应用于 已发布行为 正确行为
LWG 402 C++98 如果存在 T::operator new,则程序可能格式错误 改为使用全局 replacement-new

[edit] 参见

[静态]
在已分配的存储中构造对象
(函数模板) [编辑]
在给定地址创建对象
(函数模板) [编辑]
分配函数
(函数) [编辑]