I\'m flip-flopping between naming conventions for typedef\'ing the boost::shared_ptr template. For example:
typedef boost::shared_ptr FooPtr;
How about:
template class Shared { public: typedef std::shared_ptr Ptr; // or boost::shared_ptr if you will };
Then allowing any Shared class to have their own Ptr object, as in:
Shared
class myClass : public Shared { }; int main() { myClass::Ptr object; //... object->foo(); }