#ifndef TEMPLATE_H #define TEMPLATE_H 1 #include using boost::shared_ptr ; #include using namespace std ; template class TemplateClass { public: TemplateClass (T* arg) { cout << "TemplateClass Constructor: " << endl ; _var = shared_ptr(arg) ; } ~TemplateClass () { cout << "TemplateClass Destructor: " << endl ; } T* operator-> () const { return _var.get() ; } private: boost::shared_ptr _var ; } ; #endif