I\'m flip-flopping between naming conventions for typedef\'ing the boost::shared_ptr template. For example:
typedef boost::shared_ptr FooPtr;
I usually encapsulate the the typedef inside the class. The reason is that we have some memory sensitive code, and it makes it easy to switch between boost::shared_ptr and boost::intrusive_ptr
Since intrusive_ptr is something that the class needs to support, it makes sense to me to have the knowledge of which shared pointer to use be wrapped up in the class.