【发布时间】:2021-06-30 00:32:15
【问题描述】:
我遇到了散列 __uint128_t 的问题。以下是我的代码:
#include <iostream>
int main () {
__uint128_t var = 1;
std::cout << std::hash<__uint128_t> () (var) << "\n";
return 0;
}
我得到的错误是:
test.cpp: In function ‘int main()’:
test.cpp:5:40: error: use of deleted function ‘std::hash<__int128 unsigned>::hash()’
5 | size_t h = std::hash<__uint128_t> () (var);
| ^
如何获取__uint128_t 的哈希值? (可能是一个非常基本的问题,但我已经在这里停留了一段时间)。另外,我想知道错误的含义。提前致谢。
【问题讨论】:
-
您可以将其分成两个 64 位值和 combine 它们的哈希值。
-
好的,你知道错误在说什么吗?
-
__uint128_t不是标准类型,所以不需要std::hash来支持它。