Possible Duplicate:
Which kind of pointer do I use when?
I read that std::auto_ptr is obsolete, so you must use std::tr1::shared_ptr instead. As I read difference is std::tr1::shared_ptr have reference counting, while std::auto_ptr haven’t, so copying or assigning makes the resource changing its owner, with the source giving the ownership to the destination. Is it the only difference?
The smart pointer that closest matches the single ownership semantics of
auto_ptris std::unique_ptr. This should be used preferentially overstd::shared_ptr, if available. See here.