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