دمج Boehm Garbage Collector ومكتبة C القياسية
لدمج أداة تجميع القمامة المحافظة لـ Boehm بسلاسة مع مجموعات مكتبة C القياسية، هناك طريقتان أساسيتان :
إعادة تعريف المشغل ::جديد
يتضمن هذا النهج إعادة تعريف المشغل ::جديد لاستخدام Boehm's 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
ملاحظة:
لا يُنصح عمومًا بإعادة تعريف عامل التشغيل ::new عند دمج Boehm GC مع g . بدلاً من ذلك، تفضل استخدام أسلوب وسيطة المُخصص الصريح لزيادة قابلية النقل والتوافق.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3