• [^] # Re: Comparaison ?

    Posté par . En réponse au journal Journal Bookmark #2. Évalué à 4.

    Il ne s'agit pas de supprimer les pointeurs, mais de les rendre moins dangereux.
    Les "smart pointers" sont des objets qui encapsulent un pointeur pour offrir certaines garanties, ils existent depuis longtemps par la bibliothèque boost, et maintenant directement dans le standard avec C++11.

    Un unique_ptr représente la propriété exclusive d'un pointeur, quand l'objet unique_ptr est détruit, l'objet vers lequel il pointe l'est également. Il n'est pas possible de le copier, il faut explicitement le déplacer. Du coup un objet contenant un unique_ptr ne pourra par défaut pas être copié et on évite le problème spécifique de l'article.

    Un shared_ptr représente la propriété partagée d'un pointeur, on peut en faire des copies et lorsque la dernière est détruite l'objet pointé est détruit.

    En C++ le compilateur ne va jamais prouver que le code ne fait pas d'erreur, mais les outils permettent si ils sont utilisés correctement de lever des alertes ou erreurs de compilations en cas de mauvais usage.