
13 Dec
2011
13 Dec
'11
10:07 a.m.
-- I'm trying to use shared_ptr in a stl set, but am having trouble with find() Any help? Documentation on this seems hard to find.
-- Also, are the overloaded < and == useful or correct here?
No, std algorithms won't call your comparison operators, because those of boost::shared_ptr do not compare pointees. You can define in your cpp something like this (operator ==() is not needed for your particular case): namespace boost { template<class T> bool operator <(const shared_ptr<T> &lhs, const shared_ptr<T> &rhs) { if (!lhs && !rhs) return false; return *lhs < *rhs; } } Then move your operator <() out of Node class, and your programm will work.