boost::add_pointer のようなことをやりたいと思い, #include <iostream> #include <tr1/memory> template <typename T> class Pointable { public: typedef std::tr1::shared_ptr<T> ptr_t; }; class Parent : public Pointable<Parent> { public: Parent() { std::cout << "Parent created" << std::endl; } ~Parent() { std::cout << "Parent deleted" << std::endl; } }; class Child : public Pointable<Child>, public Parent { public: Ch