Ce code provient de l' amorce C ++ p.446:
return hash<string>() (sd.isbn());
Je ne comprends pas l'expression de retour avec deux paires de parenthèses. Il n'y a pas de syntaxe similaire devant le livre.
Ce code provient de l' amorce C ++ p.446:
return hash<string>() (sd.isbn());
Je ne comprends pas l'expression de retour avec deux paires de parenthèses. Il n'y a pas de syntaxe similaire devant le livre.
std::hash
est un type de classe. Ce que vous faites ici est de construire un temporaire std::hash
avec hash<string>()
puis (sd.isbn())
des appels à l' operator()
de temporaire de le transmettre sd.isbn()
.
Il serait le même que
std::hash<std::string> temp;
return temp(sd.isbn());
Pour en savoir plus sur l'utilisation des objets qui ont un operator()
voir: C++ Foncteurs et leurs utilisations
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.