Funkcja boost::hash_combineszablonu przyjmuje odniesienie do skrótu (wywoływanego seed) i obiektu v. Według dokumentacji łączy się seedz hashem pliku vby
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?