You have to be aware what that template (or similar templates) does, though. Smart pointers help a lot, but you have to use them wisely too, or they cause as many problems as they solve.
For example, std::auto_ptr transfers ownership if you assign it. In other words, it is not copyable. This means (among other things) that you cannot add it to a STL container, and that if you assign a = b; then b will be invalid, and accessing a member of b will cause a segfault (because a is now the only valid reference, and b is null).
Other smart/managed pointers have other properties, for example they may implement reference counting. This solves one problem, but introduces others...
Just make sure you understand the implications (you will need 1-2 afternoons of reading) before you use any of these classes/templates. Using the right smart pointer in the right situation guarantees that all will be well.