std::allocator<T>::construct
來自 cppreference.com
定義於標頭檔案 <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 |
[編輯] 參閱
[靜態] |
在已分配的儲存中構造一個物件 (函式模板) |
(C++20) |
在給定地址建立物件 (函式模板) |
分配函式 (函式) |