• # NIH ?

    Posté par (Mastodon) . En réponse au journal Publication de bibliothèques c++ sous licence libre. Évalué à 5.

    Je trouve que dans beaucoup d'endroits, il y a plein de choses qui sont en doublon par rapport à la bibliothèque standard ou qui sont réimplémentées un peu différemment et du coup, on perd de l'intérêt ou des fonctionnalités.

    Dans le module meta, je prend l'exemple de remove_const_reference qui aurait pu être implémenté plus simplement:

    template<typename T>
    struct remove_const_reference {
     using type = typename std::remove_const<std::remove_reference<T>::type>::type;
    };

    Et en plus, vous aviez la gestion des rvalue references (celles avec un &&) alors que l'implémentation proposée n'enlève pas la référence dans ce cas.

    Il y a aussi indices et make_indices dont on voit mal la différence avec std::integer_sequence et std::make_integer_sequence.

    Et dans le module memory, c'est un peu pareil. make_unique est réimplémenté mais sans prendre en compte les tableaux. Et donc, si je fais iscool::memory::make_unique<int[]>(4), ça ne compile même pas (alors que la version dans la bibliothèque standard compile et fait bien ce qu'on attend d'elle).

    Et dans le module random, random_generator fait quasiment la même chose que std::discrete_distribution sauf qu'en plus, ça ne peut pas prendre n'importe quelle source de hasard (alors que la bibliothèque standard est plutôt bien conçue à ce niveau).

    Je pourrais continuer mais je vais m'arrêter là. Tout ça me laisse une impression plus que mitigée à la lecture du code. Ça laisse penser que le syndrôme NIH n'est pas loin et donc, qu'il n'y a que peu d'intérêt à utiliser cette bibliothèque.