Funkcja boost::hash_combine
szablonu przyjmuje odniesienie do skrótu (wywoływanego seed
) i obiektu v
. Według dokumentacji łączy się seed
z hashem pliku v
by
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
Widzę, że jest to deterministyczne. Rozumiem, dlaczego używany jest XOR.
Założę się, że dodatek pomaga w odwzorowaniu podobnych wartości w dużej odległości od siebie, więc sondowanie tabel skrótów nie ulegnie awarii, ale czy ktoś może wyjaśnić, czym jest magiczna stała?