Maison >développement back-end >C++ >Voici quelques options de titre, en tenant compte de la nature questions-réponses de l'article : **
Utilisation du garbage collector de Boehm avec la bibliothèque standard C
Dans ce contexte, un développeur exprime son désir d'utiliser le garbage collector de Boehm dans un contexte multi- application C filetée. Ils ont l'intention d'exploiter les algorithmes et les collections de la bibliothèque standard C, tels que std::vector et std::map, mais s'inquiètent des conflits potentiels.
Redéfinir l'opérateur new
Le questionneur envisage de redéfinir l'opérateur nouveau avec l'implémentation de Boehm. Cependant, ils envisagent également d'utiliser les modèles de collection avec un argument d'allocateur explicite défini sur gc_allocator.
Rôle de l'argument d'allocateur
Le deuxième argument de modèle dans std::vector définit l'allocateur utilisé pour gérer les données internes du vecteur. Par défaut, il alloue de la mémoire à l'aide du malloc du système, mais il peut être personnalisé pour utiliser des allocateurs alternatifs comme gc_allocator.
Gestion de std::string
Le développeur exprime ses inquiétudes à propos de l'allocation des instances std::string par GC. Ils proposent de créer une chaîne personnalisée en utilisant basic_string avec gc_allocator. Alternativement, ils se renseignent sur l'allocation GC des tableaux de caractères internes.
Conseils sur la compatibilité GC
L'interrogateur demande des recommandations sur l'opportunité d'utiliser Boehm GC avec une application compilée par g .
Solution possible
Le développeur partage son propre code de solution, qui utilise gc_allocator et new(GC) pour garantir que toutes les allocations de tas sont gérées par GC.
Addendum
Le développeur discute de la spécification n2670 proposée, qui vise à fournir un support pour le garbage collection en C . Cependant, ils notent que cette fonctionnalité n'est actuellement pas implémentée dans les principaux compilateurs comme GCC ou Clang.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!