c++ - programacion - que hacen las llaves en java
¿Cómo entender dos pares de paréntesis en este fragmento de código? (1)
Este código es de C ++ primer p.446:
return hash<string>() (sd.isbn());
No entiendo la expresión de retorno con dos pares de paréntesis. No hay una sintaxis similar en frente del libro.
std::hash es un tipo de clase. Lo que está haciendo aquí es construir un std::hash temporal con hash<string>() y luego (sd.isbn()) llama al operator() de ese temporal que lo pasa sd.isbn() .
Sería lo mismo que
std::hash<std::string> temp;
return temp(sd.isbn());
Para obtener más información sobre el uso de objetos que tienen un operator() consulte: C ++ Functors - y sus usos