• [^] # Re: Mais pourquoi diantre pas de RAII ?

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche De Zig et des zags. Évalué à 2.

    Le compilo ne peut pas toujours savoir quand mettre un appel au destructeur. Les smartpointer, c'est en quelques sortes un garbage collector compilé avec le code (Enfin, c'est Go qui fonctionne réellement comme ça). Mais au lieu d'avoir un processus séparé qui regarde le nombre de pointeurs sur chaque instance le smartpointer vérifie s'il est à 0 et détruit l'instance si besoin (le travail du GC). Certes, l'implémentation est sans doute un peu plus complexe/optimisé avec des destruction "prévisibles" mais c'est le principe. Il y a donc du code qui "compte et regarde", c'est de la ressources perdu. Certes c'est peanuts, mais des variables, il peut y en avoir beaucoup, sur des langages ou tout est géré ainsi, l'incidence est loin d'être négligeable.

    Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.