• [^] # Re: templates variadiques

    Posté par (site web personnel) . En réponse à la dépêche Le standard C++0x a enfin été voté. Évalué à 1.

    (je réponds ici car les 150 niveaux d'indentation deviennent illisibles)
    GC et smart-pointers, il y a quand même des différences:
    - Un GC, maintenant, sait gérer tout seul les cycles ; à contrario des pointeurs à comptage de référence, avec lesquels il faut s'aider de weak_ptr ou assimilé
    - Un GC ne finalise (comprendre: "détruit") pas l'objet pointé à contrario de tous les smart-pointers du C++.
    - Tous les smart pointers ne sont pas à comptage de référence. La veille définition, c'est qu'un pointeur non brut/nu est smart/intelligent. Ainsi std::auto_ptr est un smart-pointer, tout comme boost::scoped_ptr, ou std::unique_ptr. [J'ai un peu de mal à voir pourquoi ces pinaillages autour des compteurs du coup]
    - Les *_ptr<> de boost (et de C++11) peuvent encapsuler autre chose que de la mémoire, et ça c'est classe: nous avons ainsi des scoped_guard. Un GC ? Même pas en rêve. Il ne connait que la mémoire.
    - Après je me souviens de discussions sur fclc++ ou clc++m où un avantage était prêté aux GC : le MT car ils n'utilisaient pas de compteurs atomiques.

    OK, ils ont une fonction commune : la restitution implicite de la mémoire quand plus rien n'y fait référence ; de suite pour les smart pointer (déterministe), un jour pour les GCs (non déterministe). Et c'est tout. Sorti de ça, ce n'est pas du tout pareil.