Reinterpret_cast 和建立普通的預設可建構物件
cppreference 用於聲明reinterpret_cast 可用於建立普通的預設物件的儲存上。然而,此聲明已被更正,指出在這種情況下需要 place-new 來正式引入物件並避免未定義的行為。
物件生命週期何時開始?
考慮到此更正,很明顯,在提供的程式碼中不存在 X 物件。因此,任何存取其成員的嘗試(例如,reinterpret_cast
alignas() 的作用
alignas() 說明符確保儲存適當對齊以容納 X。 它不會建立X物件。 如果alignas()宣告和reinterpret_cast之間存在分支,它不會改變不存在X物件的事實。
C 標準的變化
C 之間對此行為的解釋保持一致 11和C 1z。這兩個標準都不支援透過reinterpret_cast 創建沒有明確建構的物件的概念。
以上是何時必須將 Placement-New 與「reinterpret_cast」一起使用來建立簡單的預設可建構物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!