【发布时间】:2012-10-03 19:31:10
【问题描述】:
我正在尝试散列一个 64 位整数,
uint64_t temp = ...;
return tr1::hash<uint64_t>(temp);
但是我得到了错误,
error: no matching function for call to ‘std::tr1::hash<long long unsigned int>::hash(uint64_t&)’
为什么这不起作用?
【问题讨论】:
我正在尝试散列一个 64 位整数,
uint64_t temp = ...;
return tr1::hash<uint64_t>(temp);
但是我得到了错误,
error: no matching function for call to ‘std::tr1::hash<long long unsigned int>::hash(uint64_t&)’
为什么这不起作用?
【问题讨论】:
hash 是一个类。你必须创建一个对象:
return std::tr1::hash<uint64_t>()(temp);
// ^^^^
【讨论】: