I have an object:
class Object {
public:
boost::shared_ptr<QString> const& name() const {reutrn _name;}
private:
boost::shared_ptr<QString> _name;
};
And a multi_index set
typedef
boost::multi_index_container<
Object,
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<
boost::multi_index::const_mem_fun<
Object,
boost::shared_ptr<QString> const&,
& Object::name>,
StringPointerLess> > >
ObjectSet;
Now If I want to find something in the set and I have QString
I need to make a copy of it to allocate in heap and create shared_ptr
.
Is it possible to avoid this unnecessary copy operation, leaving the set as it is?