Хочу написать коллекцию из указателей на объекты, но такую, чтобы:
а) все элементы коллекции уничтожались при уничтожении объекта класса, в котором она хранится;
б) должна быть возможность замены одного элемента коллекции другим без уничтожения старого объекта (по этой причине не подходит, к примеру, std::vector<boost::shared_ptr<ObjType> > -- у shared_ptr нет метода release(); а оборачивать объекты типа ObjType в shared_ptr везде, где они используются, у меня нет возможности);
в) в качестве коллекции выступает не обычный сишный массив (в таком случае все было бы просто -- в бусте есть соответствующие классы), а произвольная STL-евская (или другая) коллекция.
В голову приходит только что-то вроде std::vector<boost::shared_ptr<std::auto_ptr<ObjType> > >. Нет ли решения поизящнее?