smart pointer

auto_ptr introduction