• [^] # Re: Juste mon point de vue

    Posté par . En réponse au journal De l'influence néfaste de Google sur les développeurs C++. Évalué à 3.

    D'autres ici avancent que la gestion des cas triviaux ajoute un overhead inadmissible dans du code c++.

    Je pense toujours qu'il est dommage de vérifier le fait qu'un conteneur soit vide a chaque interaction. Par contre, je suis d'accord que l'interface n'est pas optimale et pourrais être améliorée.

    Si l'optional en question intègre dans son typage la présence ou non d'une valeur ... alors ton système de type peux garantir compile time que tu gère les cas d'erreur

    Pas vraiment. Il faut déjà que le compilateur soit informé que la non vérification de la valeur de retour d'une fonction est une erreur (ce que C++17 introduit via [[nodiscard]] mais a ma connaissance ce n'est pas encore utilisé dans l'API standard, ce qui est dommage).

    Cette fonctionnalité est ce qui permets à mon avis d'avoir un minimum de garanties à la compilation sur ce genre de bugs (bien bêtes, en plus, et pénibles a trouver), l'optional est "juste" un détail d'implémentation qui permets d'avoir une interface cohérente, mais ce n'est pas le seul cas, typiquement, si je fais juste foobar.empty(); ou foobar.size();, il est évident qu'il y a des bugs, et pourtant il n'y a aucune raison de renvoyer un optional.