Do you know why the auto_ptr class have only explicit constructor, and not implicit at all? Wouldn't adding an implicit constructor facilitate initialization as in:
The point is to force the programmer to know what they are doing. Otherwise, think about
it -- EVERY single raw pointer you hold in your program could be implicitly convertible to
a std::auto_ptr.