auto_ptr in the Standard library doesn't have the normal copy behavior
because of the feature of transfer of ownership. Thus it can't be used
in the containers in STL which require normal copy function.
However, shared_ptr in TR1 or Boost is one smart pointer that uses reference
count and has normal behavior of copying. It can be used for STL.