• [^] # Re: Donc pour résumer...

    Posté par (site web personnel) . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.

    A noter un repproche que je fais aux pointeurs intelligents standard: ils ne savent gérer que la mémoire, alors que ce n'est qu'une seule des ressources que l'on peut manipuler (alors qu'un descripteur de fichier UNIX est un int, par exemple)

    Justement, le deleter sert à choisir comment on restitue la ressource, et de fait on peut employer les pointeurs intelligent du C++11 (et boostien) sur n'importe quel type de ressources.

    auto p = shared_ptr<FILE>(fopen(foo), [](FILE *f){ if (f) fclose(f); });

    Cela manque d'un chouilla de surcouche pour une utilisation aisée. Reste que c'est un cas de figure prévu.

    Le C++ ne permets pas non plus, à ma connaissance, de vérification sur les under/over-flow d'entier.

    On déporte ça à de l'analyse statique, ou aux sanitizers.

    Il me donne le choix d'utiliser les exceptions (à condition de se passer de la STL, certes).

    Pratiquement tous les algos sont neutres relativement aux exceptions.