Hello,

I have:

std::set< boost::shared_ptr< A > > m_set;

and when I try to do:

m_set.erase( somesharedptr );

the shared_ptr is not removed from the set. There is already a shared_ptr object pointing to the same A object inside the set.
I think it's because the definition of "shared_ptr<>::operator<" and its use in std::set<>::erase.

What's the correct way of using a shared_ptr inside a set?

Thanks.