將Boehm 的垃圾收集器與C 標準庫一起使用
在這種情況下,開發人員表達了他們希望在多用途中使用Boehm 的垃圾收集器線程C 應用程式。他們打算利用 C 標準函式庫的演算法和集合,例如 std::vector 和 std::map,但擔心潛在的衝突。
重新定義運算子 new
提問者考慮用 Boehm 的實作重新定義operator new。但是,他們也考慮使用集合模板,並將明確分配器參數設為 gc_allocator。
分配器參數的角色
std::vector 中的第二個模板參數定義用於管理向量內部資料的分配器。預設情況下,它使用系統的 malloc 分配內存,但可以自訂為使用 gc_allocator 等替代分配器。
處理 std::string
開發人員表達了擔憂關於 GC 分配 std::string 實例。他們建議使用 basic_string 和 gc_allocator 建立自訂字串。或者,他們詢問有關 GC 分配內部字元數組的資訊。
關於GC 相容性的建議
提問者尋求關於是否在由以下程式碼編譯的應用程式中使用Boehm GC 的建議g .
可能的解決方案
開發人員共享他們自己的解決方案代碼,該代碼使用gc_allocator 和new(GC) 來確保所有堆分配都是GC 管理的。
附錄
開發人員討論了提議的 n2670 規範,該規範旨在提供 C 語言的垃圾收集支援。然而,他們指出,此功能目前尚未在 GCC 或 Clang 等主要編譯器中實現。
以上是考慮到文章的問答性質,以下是一些標題選項: **的詳細內容。更多資訊請關注PHP中文網其他相關文章!