signos que programacion llaves lenguaje las hacen ejemplos corchetes como abrir c++ hash

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