• [^] # Re: et ça compile ?

    Posté par (site web personnel) . En réponse au message garbage colector C++ ?. Évalué à 2.

    bon, maintenant ca compile :)

    pour le nom des smart pointers, je n'ai fait que reprendre le concept que j'ai trouvé dans Crystal Space1 du même nom qui gère un comptage de références.
    Je n'avais même pas réalisé que smart voulait dire intelligent :)

    1) Le programmeur doit lorsqu'il crée une référence racine vers un objet utiliser les 'smart pointers' (RootRef). Cela va automatiquement renseigner un ensemble contenant la liste des pointeurs racine.

    Il est aussi recommandé d'utiliser des 'smart pointers' simples (Ref) pour les autres références vers des objets, ainsi une métode de comptage des références permet de libérer au plus tôt les objets.

    Pour les cycles, c'est là que l'algo mark & sweep est utile.

    2) Tout repose sur la redéfinition de gcIterate, effectivement, mais ce devrait être fort simple :
    void gcIterate() {
    ref1.gcMark();
    ...
    refN.gcMark();
    }


    C'est vrai que c'est pour une utilisation dans mon application, donc je peux me permettre de telles contraintes que je ne trouve pas très élevés.

    1 http://www.crystalspace3d.org