1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdint>
std::uint32_t Hash(void* p) {
std::uintptr_t val = reinterpret_cast<std::uintptr_t>(p);
return static_cast<std::uint32_t>(val ^ (val >> 32));
}
int main() {
int a[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; ++i) {
std::cout << "Hash of &a[" << i << "]: " << Hash(&a[i]) << std::endl;
}
return 0;
}
Back to reinterpret_cast