Smart Pointers:
Smart pointer are objects that looks & feel like pointers, but are smarter. To be smarter than regular pointers, smart pointers need to do thing that regular pointers do not. The most common bugs in c and C++ are related to pointers and memory like dangling pointers, memory leaks, allocation of memory failures and others. A smart pointers take care of these things. [std::auto_ptr]