Joost Kraaijeveld
Hi,
I want to use in index based on a member function that returns a bool if an element is smaller than an other element like operator<. But I cannot find how to do that.
e.g.
using namespace ::boost; using namespace ::boost::multi_index;
class Object{ bool operator<(const Object& rhs) const; bool fn(const Object& rhs) const; }
[...] Do as follows: struct ObjectLessbyFn { bool operator()(const Object& lhs, const Object& rhs) const{ return lhs.fn(rhs); } }; typedef multi_index_container< Object, indexed_by< ordered_unique< identity< Object > >, ordered_unique< tag< FnIndex >, identity< Object >, ObjectLessbyFn > >
ObjectContainer;
In the first index std::less<Object> is used as the default compare predicate, which, as you correctly guess, resorts to Object::operator<. Best regards, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo