Ответ 1
std::hash
- это тип класса. То, что вы здесь делаете, это создание временного std::hash
с hash<string>()
, а затем (sd.isbn())
вызывает operator()
этой временной передачи это sd.isbn()
.
Это будет то же самое, что
std::hash<std::string> temp;
return temp(sd.isbn());
Для более подробной информации об использовании объектов с operator()
см. С++-функторы - и их использование