Функция boost::hash_combineшаблона принимает ссылку на хэш (вызываемый seed) и объект v. Согласно документам , он сочетается seedс хешем vby
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
Я вижу, что это детерминировано. Я понимаю, почему используется XOR.
Бьюсь об заклад, это добавление помогает отображать похожие значения на значительном расстоянии друг от друга, так что хеш-таблицы не сломаются, но может ли кто-нибудь объяснить, что такое магическая константа?