La boost::hash_combinefonction de modèle prend une référence à un hachage (appelé seed) et à un objet v. Selon la documentation , il se combine seedavec le hachage de vby
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
Je peux voir que c'est déterministe. Je vois pourquoi un XOR est utilisé.
Je parie que l'ajout aide à mapper des valeurs similaires largement les unes des autres afin que les tables de hachage ne se décomposent pas, mais quelqu'un peut-il expliquer quelle est la constante magique?