J'ai souvent besoin d'utiliser le type en option pour les fonctions:Valeur de retour en option avec: opérateur
std::optional<int32_t> get(const std::string& field)
{
auto it = map.find(field);
if (it != map.end()) return it->second;
return {};
}
est-il un moyen de retourner la valeur facultative dans une ligne? par exemple. ceci:
std::optional<int32_t> get(const std::string& field)
{
auto it = map.find(field);
return it != map.end() ? it->second : {};
}
résultats dans l'erreur
error: expected primary-expression before '{' token
return it != map.end() ? it->second : {};
^
@ tobi303 '{}' n'a pas été analysé comme une expression. – MiP
Clang donne un message d'erreur beaucoup plus agréable: "liste d'initialisation ne peut pas être utilisé sur le côté droit de l'opérateur '?" " – emlai