Я узнаю об интеллектуальных указателях (std::auto_ptr
) и просто прочитал здесь и здесь , что интеллектуальные указатели (std::auto_ptr
) не следует помещать в контейнеры (т. Е. std::vector
) потому что даже большинство компиляторов не будут жаловаться, и это может показаться правильным. Не существует правила, которое гласит, что интеллектуальные указатели не будут внутренне скопированы (например, классом vector
) и не передадут свое владение, тогда указатель станет NULL. В конце концов все облажается.
На самом деле, как часто это происходит?
Иногда у меня есть векторы указателей, и если в будущем я решу, что хочу иметь вектор умных указателей, какие бы у меня были варианты?
Мне известны библиотеки C ++ 0x и Boost, но сейчас я бы предпочел придерживаться подхода STL.