整合 Boehm 垃圾收集器和 C 標準庫
要將 Boehm 保守垃圾收集器與 C標準庫集合無縫集成,有兩種主要方法:
重新定義運算符::new
此方法涉及重新定義運算符::new以使用Boehm的GC。但是,它可能與現有 C 程式碼衝突,並且可能無法在不同編譯器之間移植。
明確分配器參數
您可以使用而不是重新定義運算符::new標準庫集合的第二個模板參數,用於指定自定義分配器。此參數控制如何分配集合內部資料結構的記憶體。
使用std::vector 的範例
以下程式碼示範如何將gc_allocator 與std:: 一起使用:向量:
#include
#include
std::vector> myVector(10); // Allocate vector with GC-specific allocator
std::string Integration
對於std::string,您可以使用GC_malloc_atomic明確指派內部字元陣列:
#include
#include
std::string myString((char*)GC_malloc_atomic(10), 10); // Allocate string with GC_malloc_atomic
指派字串注意:
Boehm GC 與整合字串時,一般不建議重新定義操作符::new 。相反,更喜歡使用明確分配器參數方法以獲得更大的可移植性和相容性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3