Great : implementing __hash__ *and* operator==() did the trick !

My implementation uses this
int hello::__hash__() const
{
    //Using Duff's device version of sdbm hash func
    return dbm_hash(country.c_str(), country.length());
}

bool hello::operator == (const hello &h) const {
    return __hash__() == h.__hash__();
}

With the corresponding definitions for my extension
class_<hello>("hello", init<std::string>())
    .def("__hash__", &hello::__hash__)
    .def(self == self)
    ;

Thank you,


--
Guillaume
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to