命名空间
变体
操作

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)...)

目录

[编辑] 参数

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

[编辑] 返回值

(无)

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确的行为
LWG 402 C++98 如果 T::operator new 存在,程序可能格式错误 改为使用全局替换-new

[编辑] 参阅

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