Для классов, которые имеют элемент данных auto ptr, у меня всегда есть метод clone, который возвращает новый auto ptr. Затем я реализую метод присваивания и конструктор копирования, который вызывает метод клона (и никогда не используется по умолчанию как оператор присваивания auto ptr). Таким образом, вы можете безопасно использовать класс в контейнерах STL.

сь об умных указателях (std::auto_ptr) и только что прочиталВот а такжеВот что умные указатели (std::auto_ptr) не следует помещать в контейнеры (т.е.std::vector) потому что даже большинство компиляторов не будут жаловаться, и это может показаться правильным. Нет правила, согласно которому умные указатели не будут копироваться внутриvector классом) и передайте его в собственность, тогда указатель станет NULL. В конце концов все облажается.

На самом деле, как часто это происходит?

Иногда у меня есть векторы указателей, и если в будущем я решу, что хочу иметь вектор умных указателей, какие бы у меня были варианты?

Мне известны библиотеки C ++ 0x и Boost, но сейчас я бы предпочел придерживаться подхода STL.

Ответы на вопрос(5)

Ваш ответ на вопрос