私はオブジェクトを持っています:
class Object {
public:
boost::shared_ptr<QString> const& name() const {reutrn _name;}
private:
boost::shared_ptr<QString> _name;
};
そして multi_index セット
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;
セット内の何かを見つけたい場合は、QString
そのコピーを作成してヒープに割り当てて作成する必要がありますshared_ptr
。
セットをそのままにして、この不要なコピー操作を回避することはできますか?