#ifndef Dummy_h_ #define Dummy_h_ #include template< typename T > class Dummy { public: Dummy(const T& data); ~Dummy(); void print() const; private: T* data_; }; template Dummy::Dummy(const T& data) { data_ = new T(data); } template Dummy::~Dummy() { delete data_; } template void Dummy::print() const { std::cout << "Dummy::print() with type T = " << typeid(T).name() << ", *data_: " << *data_ << std::endl; } #endif