Добрый день! Я изучаю unordered_set и прочитал что для использования собственных классов в unordered_set нужно(как вариант) специализировать шаблон класса hash. По аналогии с тем, что я прочитал в интернете, я специализировал hash и получил:
template<>
class hash<OB> {
public:
size_t operator() (const OB& obi) const{
return hash<int>()(obi.num);
}
};
Но мне не понятно почему нужно писать
hash<int>()(obi.num);
а не
hash<int>(obi.num);
Объясните пожалуйста в чем разница между этими вариантами