以下两个 return 语句返回相同的东西吗?
class NonTrivialClass
{
public:
size_t hash() const
{
// variation 1
return std::hash<uint64_t>::_Do_hash(my_val_);
// variation 2, wanted to avoid creating the named object
std::hash<uint64_t> hasher;
return hasher(my_val_);
}
private:
// relevant info for hashing purposes is stored here
uint64_t my_val_;
}
我凭直觉想写类似的东西
return std::hash<uint_64>(my_val_);
哪个没有编译(因为我没有初始化结构的实例?!)。还有另一种我想念的方式吗?是否担心不必要地创建命名的哈希结构?