je ne vois pas vraiment ce que l'on peut faire de mieux.
Ça rajoute une couche de complexité qui n'est pas forcément nécessaire. Je sais bien que le C++ est un langage verbeux et qu'on peut changer de langage si on aime les trucs concis, mais personnellement ça me gêne de devoir appeler ".value()" pour accéder à la valeur cherchée. Je comprendrais le mécanisme des optional s'il y avait une conversion implicite de optional vers T, ce qui permettrait, au choix, d'utiliser la fonction de manière transparente, ou de gérer les erreurs si le contexte le demande.
C++ est devenu un truc tellement gros que j'ai l'impression que la plupart des projets en utilisent un sous-ensemble, du style sans STL, sans exceptions, sans templates, sans héritage multiple, sans pointeurs, sans lambdas, etc. Si tu publies une bibliothèque dont la gestion d'erreur repose sur des optional, tu forces les utilisateurs à adopter cette méthode, même si ça ne correspond pas du tout à la manière dont, en interne, ils gèrent les erreurs. Je ne sais pas si le jeu en vaut la chandelle.
[^] # Re: Liberté de l'utilisateur
Posté par arnaudus . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 3.
Ça rajoute une couche de complexité qui n'est pas forcément nécessaire. Je sais bien que le C++ est un langage verbeux et qu'on peut changer de langage si on aime les trucs concis, mais personnellement ça me gêne de devoir appeler ".value()" pour accéder à la valeur cherchée. Je comprendrais le mécanisme des optional s'il y avait une conversion implicite de optional vers T, ce qui permettrait, au choix, d'utiliser la fonction de manière transparente, ou de gérer les erreurs si le contexte le demande.
C++ est devenu un truc tellement gros que j'ai l'impression que la plupart des projets en utilisent un sous-ensemble, du style sans STL, sans exceptions, sans templates, sans héritage multiple, sans pointeurs, sans lambdas, etc. Si tu publies une bibliothèque dont la gestion d'erreur repose sur des optional, tu forces les utilisateurs à adopter cette méthode, même si ça ne correspond pas du tout à la manière dont, en interne, ils gèrent les erreurs. Je ne sais pas si le jeu en vaut la chandelle.