Some question related to auto_ptr documentation 
I was going through the auto_ptr documentation on this link [auto_ptr](http://www2.roguewave.com/support/docs/sourcepro/edition9/html/stdlibref/auto-ptr.html)
There is something which i could not fully understand why is it done. In the interface section there are two declarations for its copy constructor

    auto_ptr(auto_ptr<X>&) throw (); 
    
    template <class Y> 
         auto_ptr(auto_ptr<Y>&) throw(); 

What purpose is this for.
Some question related to auto_ptr documentation 
===

I was going through the auto_ptr documentation on this link [auto_ptr](http://www2.roguewave.com/support/docs/sourcepro/edition9/html/stdlibref/auto-ptr.html)
There is something which i could not fully understand why is it done. In the interface section there are two declarations for its copy constructor

    auto_ptr(auto_ptr<X>&) throw (); 
    
    template <class Y> 
         auto_ptr(auto_ptr<Y>&) throw(); 

What purpose is this for.