Número mágico no impulso :: hash_combine

oboost::hash_combine A função template usa uma referência a um hash (chamadoseed) e um objetov. De acordo comdocs, isto combinaseed com o hash dev por

seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);

Eu posso ver que isso é determinístico. Eu vejo por que um XOR é usado.

Aposto que a adição ajuda a mapear valores semelhantes amplamente separados para que as tabelas de hash da análise não sejam quebradas, mas alguém pode explicar qual é a constante mágica?

questionAnswers(2)

yourAnswerToTheQuestion