![](/img/trans.png)
[英]Custom C++ Allocator cause error in : _Container_base12::_Orphan_all_unlocked_v3()
所以我打算將這個基於堆棧的分配器用於 std::vector,並且我使用 2 arrays 進行分配(因為向量增長並將舊緩沖區復制到新緩沖區)。 這是完整的代碼: 代碼以某種方式導致崩潰:在此處輸入圖像描述在此處輸入圖像描述我注意到“_Container_base12”繼承自分配器,所以我想我的“ ...
[英]Custom C++ Allocator cause error in : _Container_base12::_Orphan_all_unlocked_v3()
所以我打算將這個基於堆棧的分配器用於 std::vector,並且我使用 2 arrays 進行分配(因為向量增長並將舊緩沖區復制到新緩沖區)。 這是完整的代碼: 代碼以某種方式導致崩潰:在此處輸入圖像描述在此處輸入圖像描述我注意到“_Container_base12”繼承自分配器,所以我想我的“ ...
[英]What are the differences between Block, Stack and Scratch Allocators?
賞金將在 6 天后到期。 此問題的答案有資格獲得+50聲望賞金。 doliphin正在尋找一個規范的答案: 我真的很想知道這些分配器之間的區別! 在他的演講“為引擎開發人員解決正確的問題”中,Mike Acton 說絕大多數時候,您需要的只是這三種類型的分配器:塊分配器、堆棧分配器和臨時分配器但 ...
[英]Should pmr containers with different allocators compare equal?
假設我有一個容器,它使用硬編碼的 pmr 分配器來存儲數據。 C++ 社區的共識是什么: operator==()應該在僅分配器不同的對象上比較相等還是應該強排序? 我可以看到這兩種情況的論據。 容器的可能實現: 演示 這個區分分配器^^ ...
[英]Why does the STL overload their constructors with/without allocator argument?
在std::vector中,為什么 stl 會像這樣重載構造函數: 為什么不這樣做呢? 編輯: 由於右值不能綁定到非 const 左值,因此可以這樣做: ...
[英]Allocator and STL containers
我正在嘗試重現 std::vector 容器,我看到在一個向量構造函數原型中我們可以提供一個分配器。 所以我首先想到了兩個問題,為什么我們能夠在知道我們已經擁有 allocator_type 成員類型的情況下提供一個分配器? 其次,如果我給構造函數一個不同的分配器會發生什么? 所以我試過這段代碼。 ...
[英]Custom STL Allocator: Construct/Destroy called for each element
我有這個代碼片段 Output: 有了這個分配器 因此很明顯,與默認分配器相比,緩沖區的每個 char 元素都會調用構造/銷毀,這導致執行時間增加了 20 倍。 我怎樣才能防止這種基本類型的這種行為? ...
[英]If allocators are stateless in C++, why are functions not used to allocate memory instead?
默認的std::allocator class 在 C++ 中是無狀態的。這意味着std::allocator的任何實例都可以釋放由另一個std::allocator實例分配的 memory。 那么讓分配器實例分配 memory 有什么意義呢? 例如,為什么 memory 是這樣分配的: 當功能可 ...
[英]Allocator object type conversion
有沒有一種方法,為類型 T 使用一個分配器 object,使用相同的 object 為任何其他類型分配 memory。 也許 static_cast 或 rebind 的一些魔法可以幫助? 因為現在我只知道如何使用重新綁定從原始分配器派生所需的 object 類型的分配器類型,但我不明白如何使用現成 ...
[英]nested vector with polymorphic_allocator cannot be constructed via emplace_back
以下代碼:std::pmr::vector<std::pmr::vector<int>> outer_vec(std::pmr::get_default_resource()); outer_vec.emplace_back(std::pmr::get_default_res ...
[英]Why does reallocating with realloc, a pre-allocated memory using allocator::allocate conserve the old start memory address?
主要問題是重新分配 memory,同時擴展它並保存數據和第一個起始 memory地址,該地址被程序的許多其他部分使用(例如 ZA81259CEF8E959C624ZDF1D456E5D329 起始內存) 這對 realloc 不起作用,因為他解除了分配的先例 memory 並影響另一個具有新的起始 ...
[英]Can the ctor be marked noexcept based on allocator type?
如果分配器不拋出,我應該如何確保構造函數是noexcept ? 這是一個MRE: 首先,我想知道為什么noexcept( std::allocator<unsigned> { } )返回true ? std::allocator<unsigned>異常安全嗎? 就像帶有這 ...
[英]construction with an allocator must be possible if uses_allocator is true
我正在嘗試創建一個 pmr 分配的數據結構(比較下面的代碼)。 然而,這失敗了,並出現了一條非常長的錯誤消息,我無法完全追蹤它的根源。 最后是一個 static_assert ,它表示construction with an allocator must be possible if uses_al ...
[英]How to conditionally select base constructor in initialization list of derived constructor
示例: std::vector的包裝器。 我有 2 個移動構造函數: 但是,如果給定的 memory 分配器與移動參數中的相同,我想進行優化以避免昂貴的向量構造函數。 就像是: 這在 C++ 中是否可行? 注意:問題有條件地初始化 C++ 成員變量的正確方法? 不相似,因為我無法將條件推送到基本構造 ...
[英]How to fix custom allocator compiling error for std::map on windows?
我在這里試過一個。 代碼如下: 但這會導致在 Visual Studio 2019 x86 上編譯失敗: 如何解決? ...
[英]How to custom memory allocator for a static library writen in C++?
要計算 static 庫 A 的 memory 使用情況,我們將編寫自定義 memory 分配器或重寫運算符 new/delete。 由於應用程序中還有其他庫,我們只想使用A。如何實現我們的目標? 分配器或新/刪除是否足夠? ...
[英]Why are my pmr-aware containers copied instead of moved?
我正在嘗試這些新的 pmr 東西,這些東西看起來真的很有趣。 因此,在我的示例中,我將monotonic_buffer_resource連接到緩沖區並用日志記錄資源覆蓋它,以了解正在進行的分配。 然后我使用該資源創建一個pmr::vector並推回我的 pmr 感知容器類型(它本質上只是一個pmr ...
[英]Creating an idiomatic stack based allocator for std::unordered_map
我正在為 unordered_map 編寫一個自定義分配器以在堆棧上分配。 我對如何慣用地執行此操作有點迷失:我應該將堆棧資源作為指針傳遞給分配器,還是在分配器內定義字節數組? 這里的常見做法是什么? ...
[英]Is there a way to resize a buffer in C++
我是 memory 管理的菜鳥,所以請原諒我。 假設我有以下代碼: 有沒有一種好方法可以給這個緩沖區“添加空間”,而不是創建一個新緩沖區,分配更多空間,將舊緩沖區復制到新緩沖區,然后替換舊緩沖區? ...
[英]Should I call `delete` on object allocated using polymorphic allocator
Does polymorphic allocator (I personally use boost and C++17, but guess that it's the same for stl and C++20) in it's destructor automatically destr ...
[英]Linking to custom memory allocator for c++
我的目標是為 ARM 處理器交叉編譯一些用 C++ 編寫的代碼。 那里沒有運行操作系統,我們需要裸機代碼。 但是,問題是我要運行的許多 C++ 代碼都不是裸機,至少需要動態內存。 我希望做一些基本的內存分配器(可能是線性分配器)並鏈接到它,這樣 C++ 代碼就可以在沒有操作系統的情況下編譯和運行。 ...