• [^] # Re: les anciennes choses..

    Posté par (site web personnel) . En réponse au journal Ces langages avec lesquels il faut tout réécrire. Évalué à 3. Dernière modification le 29 septembre 2022 à 15:19.

    Autrement dit des perfs en moins.

    Ça n'a absolument aucun sens ce que tu dis. Dans tous les cas la mémoire que tu as allouée doit être désallouée. Les smart pointeurs permettent simplement de s'affranchir de faire des memory leak parce qu'on a oublié de le faire à un fil d'exécution du code. D'ailleurs un std::unique_ptr compilé avec les optimisations au max génère le même code assembleur.

    Les smarts pointers permettent surtout d'éviter ce genre de problèmes avant qu'ils existent.

    Foo *instance = get_my_instance_driver();
    // Okay...
    if (something_has_failed) {
     log("it failed");
     delete instance;
     return false;
    }
    do_something_that_may_throw_an_exception();
    // Oups, si cette fonction a levé une exception j'ai un bon gros leak des familles.
    return true;

    AI is a mental disorder