ブースト ユニット タイプが含まれる場所tbb::concurrent_hash_map
のキーでを使用したい。現在使用している HashCompare 構造体は次のようになります。std::tuple<A...>
A...
template<typename K>
struct HashCompare {
static size_t hash( const K& key )
{
boost::hash<K> hasher;
return hasher(key);
}
static bool equal( const K& key1, const K& key2 ) {return key1 == key2;}
};
ブーストユニット以外のすべてのタイプでこれを試してみましたが、ブーストユニットではうまくいきませんでした。boost::hash
カスタムタイプで関数を拡張できることは知っていますが、それはできないようです。私は非常に多くのユニットを持っているので、次の形式のテンプレートでこれを行いたいと思いました:
std::size_t hash_value(T const& t){
boost::hash<double> hasher;
return hasher(t.value());
}
この関数をboost
名前空間またはユニットが定義されている名前空間に配置しても機能しませんでした。
HashCompare::hash
ブースト ハッシュ関数をカスタム タイプに拡張したり、ブースト ユニットのみを使用する関数のテンプレートを作成したりするにはどうすればよいですか?