我們都知道,RAW指針需要被包裹在某種形式的智能指針來獲得異常安全內存管理。但是當談到容器的指針時,問題變得更加棘手。指針和容器
集裝箱堅持所包含的對象是可複製性病因此這排除了使用std :: auto_ptr的,雖然你仍然可以使用boost :: shared_ptr的等
但也有明確設計一些提升容器安全地持有指針:
見Pointer Container Library
的問題是: 在什麼情況下,我應該更喜歡smart_pointers的容器使用ptr_containers?
boost::ptr_vector<X>
or
std::vector<boost::shared_ptr<X> >
這是可能的,有時是最好的選擇,但如果一個類包含2個或更多的RAW指針使它異常安全是不平凡。但我不應該回答你的問題,因此我應該標記你。 – 2008-09-22 17:21:43