cost 305 ms
放置新的開始對象的生命周期嗎?

[英]Does placement new start object's lifetime?

以下代碼示例來自std::launder上的 cppreference。 alignas(Y) std::byte s[sizeof(Y)]; Y* q = new(&s) Y{2}; const int f = reinterpret_cast<Y*>(&s ...

std::launder 可達性

[英]reachability with std::launder

我試圖從CPP 參考中理解以下片段。 有人可以更詳細地解釋為什么x2[1]無法從source訪問嗎? 例如,我們不能通過&x2[0][0] + 10到達它嗎?int x2[2][10]; auto p2 = std::launder(reinterpret_cast<int(*)[10 ...

為什么要引入 `std::launder` 而不是讓編譯器來處理呢?

[英]Why introduce `std::launder` rather than have the compiler take care of it?

我剛讀過 std::launder 的目的是什么? 坦率地說,我只是摸不着頭腦。 讓我們從@NicolBolas 接受的答案中的第二個例子開始: [basic.life]/8 告訴我們,如果你在舊的存儲中分配一個新的 object,你不能通過指向舊的指針訪問新的 object。 std::la ...

在帶有參考字段的 class 上放置新

[英]placement new on a class with reference field

這是來自 C++20 規范 ( [basic.life]/8 ) 的代碼示例: 以下行為是否合法或未定義: 如果它是非法的, std::launder會使其合法嗎? 應該在哪里添加? 注意: p0532r0 (第 5 頁)在類似情況下使用洗錢。 如果它是合法的,它如何在沒有“指針優化障礙” (即st ...

帶有就地多態容器的 std::launder

[英]std::launder with inplace polymorphic containers

我正在為 Game Boy Advance 用 C++ 做一個有點不平凡的項目,而且,作為一個完全沒有內存管理的有限平台,我試圖避免調用malloc和動態分配。 為此,我已經實現了相當多的調用,“就地多態容器”,它存儲從Base類派生的類型的對象(在類型模板中參數化),然后我有new對象的函數並使用 ...

如何解釋std :: launder的可達性要求?

[英]How to interpret the reachability requirement of std::launder?

std::launder函數要求通過參數可以訪問的每個字節都可以通過參數訪問。 “可達”定義如下: 如果對象Y位於由Y占用的存儲區內,則指向存儲的字節可以到達,如果Y是指針可互換的對象,則指向對象Y ,或者如果Y是數組元素,則指向立即封閉的數組對象。 根據另一個問題的答案 , ...

安全(且無成本)重新解釋大小數據

[英]Safe (and costless) reinterpretation of sized data

我想寫自己的“小向量”類型,而第一個障礙就是弄清楚如何實現棧上存儲。 我偶然發現了std::aligned_storage ,它似乎是為實現任意堆棧上存儲而專門設計的,但是我不清楚什么是安全的 ,什么是不安全的 。 cppreference.com方便有一個例子使用std::aligne ...

std :: launder alternative pre c ++ 17

[英]std::launder alternative pre c++17

它就像std::optional ,但不存儲額外的bool。 用戶必須確保僅在初始化后訪問。 如果您想知道為什么我需要這樣一個模糊的數據結構,請點擊此處: https : //gitlab.com/balki/linkedlist/tree/master 題 可以忽略s ...

std::launder 的目的是什么?

[英]What is the purpose of std::launder?

P0137引入了函數模板std::launder並對有關聯合、生命周期和指針的部分中的標准進行了很多很多更改。 這篇論文要解決什么問題? 我必須注意語言的哪些變化? 我們在launder什么? ...


排序:
質量:
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM