名稱空間
變體
操作

std::allocator<T>::construct

來自 cppreference.com
< 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

[編輯] 參閱

[靜態]
在已分配的儲存中構造一個物件
(函式模板) [編輯]
在給定地址建立物件
(函式模板) [編輯]
分配函式
(函式) [編輯]