Si tu as un std::optional<A> nommé value et une fonction de A dans std::optional<B> nommée f. Alos bind(value, f) te renvoie un std::optional<B>. Soit il y avait quelque chose dans value et il a appliqué f sur ce quelque chose, soit il n'y avait rien, et il renvoie un std::optional<B>.
Le cas vide est donc géré et repoussé à la prochaine étape. Un jour, en fin de chaîne, une décision sera prise sur quoi faire du optional vide, une valeur par défaut, avec value_or, ou un comportement different, avec optionalCase.
[^] # Re: moche ?
Posté par Guillaum (site web personnel) . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 4.
Ba si...
Si tu as un
std::optional<A>nommévalueet une fonction deAdansstd::optional<B>nomméef. Alosbind(value, f)te renvoie unstd::optional<B>. Soit il y avait quelque chose dansvalueet il a appliquéfsur ce quelque chose, soit il n'y avait rien, et il renvoie unstd::optional<B>.Le cas vide est donc géré et repoussé à la prochaine étape. Un jour, en fin de chaîne, une décision sera prise sur quoi faire du optional vide, une valeur par défaut, avec
value_or, ou un comportement different, avecoptionalCase.