を実装してboost::bimap
おり、使用を検討してunordered_multiset_of
いunordered_multiset_of
ますが、ハッシュ関数と等号演算子を渡す必要があります。そして、私はそれを正しく理解できません。
class MyClass
{
std::string s1;
std::string s2;
bool operator == (MyClass const& myClass)
{
return (s1 == myClass.s1 && s2 == myClass.s2);
}
};
namespace std
{
template<>
struct hash<MyClass>
{
std::size_t operator()(const MyClass& myClass) const
{
std::size_t Seed = 0;
boost::hash_combine(Seed, myClass.s1);
boost::hash_combine(Seed, myClass.s2);
return Seed;
}
}
}
int main()
{
typedef boost::bimaps::bimap<boost::bimaps::unordered_multiset_of<client,std::hash<MyClass>, std::equal_to>, .......................................> MyBiMap;
MyBiMap MAP;
}
私のハッシュ関数と equal_to 関数はエラーを出すようです。どうすれば修正できますか?でstd::equal_to()
定義された == 演算子が自動的に呼び出されると思いMyClass
ますよね?