名稱空間
變體
操作

voidify

來自 cppreference.com
< cpp‎ | 記憶體
 
 
記憶體管理庫
voidify
(僅作說明*)
未初始化記憶體演算法
(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*)
顯式生命週期管理
 
template< class T >
void* voidify( T& obj ) noexcept;
(僅作說明*)
(自 C++17 起為 constexpr)

返回 obj 的地址(隱式轉換為 void*)。

目錄

[編輯] 引數

obj - 要獲取其地址的物件

[編輯] 返回值

&obj

(C++11 前)

std::addressof(obj)

(C++11 起)

[編輯] 註解

此僅用於闡釋的函式由 P0896R4 引入。它用於描述 未初始化記憶體演算法 的效果,這些演算法在未初始化記憶體區域中構造物件。結果指標用作 定位 new 表示式placement-params

最初,返回值為 const_cast<void*>(static_cast<const volatile void*>(std::addressof(obj))),這破壞了 const 正確性。顯式轉換已透過 LWG issue 3870 的解決移除,只剩下隱式轉換為 void*

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 3870 C++98 顯式轉換破壞了 const 正確性 移除了這些轉換

[編輯] 參閱

將物件範圍複製到未初始化記憶體區域
(函式模板) [編輯]
將物件範圍複製到未初始化記憶體區域
(演算法函式物件)[編輯]
將物件複製到由範圍定義的未初始化記憶體區域
(函式模板) [編輯]
將物件複製到由範圍定義的未初始化記憶體區域
(演算法函式物件)[編輯]
將一系列物件移動到未初始化記憶體區域
(函式模板) [編輯]
將一系列物件移動到未初始化記憶體區域
(演算法函式物件)[編輯]
透過預設初始化在由範圍定義的未初始化記憶體區域中構造物件
(函式模板) [編輯]
透過預設初始化在由範圍定義的未初始化記憶體區域中構造物件
(演算法函式物件)[編輯]
在由範圍定義的未初始化記憶體區域中,透過值初始化構造物件
(函式模板) [編輯]
在由範圍定義的未初始化記憶體區域中,透過值初始化構造物件
(演算法函式物件)[編輯]
在給定地址建立物件
(函式模板) [編輯]
在給定地址建立物件
(演算法函式物件)[編輯]