boost::hash_combineテンプレート関数は、ハッシュ(と呼ばれる参照取りseed)及びオブジェクトv。docsによると、それseedはvby のハッシュと結合します
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
これは決定論的であることがわかります。XORが使用される理由がわかります。
追加は、類似した値を広く分離してマッピングするのに役立つので、ハッシュテーブルをプローブしても問題が発生しないと思いますが、誰かが魔法の定数を説明できますか?