std::allocator<T>::construct

来自cppreference.com
< cpp‎ | memory‎ | allocator
 
 
内存管理库
(仅用于阐述*)
分配器
未初始化内存算法
受约束的未初始化内存算法
内存资源
未初始化存储 (C++20 前)
(C++17 弃用)
(C++17 弃用)

垃圾收集器支持 (C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
 
 
在标头 <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... - 所用的构造函数实参

[编辑] 返回值

(无)

[编辑] 缺陷报告

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

缺陷报告 应用于 出版时的行为 正确行为
LWG 402 C++98 如果存在 T::operator new,那么程序可能会非良构 改用全局的布置 new

[编辑] 参阅

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