レギュラータイプとは、 Elements of Programmingの Stepanov の定義を意味します。つまり、基本的に、等しいという概念があり、互いのコピーであるオブジェクトは等しいということです。
したがって、 Regular TypeT
があり、等式関係が推移的 ( a == b && b == c => a == c ) の場合、次の定義と一致する (非自明な) ハッシュ関数を定義できます。等式 ( a == b => h(a) == h(b) )。いつも。
std::hash
しかし、標準には多くの専門分野は含まれていません。たとえば、 と の注目すべき例外をstd::complex
除いて、1 つもコンテナーもありません。vector<bool>
bitset
だから私はここに設計原則が何であるか疑問に思っています。
std::hash
または、別の質問:特殊化が規則的であり、等式が推移的である場合、独自の型に特殊化を提供しない理由はありますか?