#ifndef SINGLETON_H #define SINGLETON_H #include "Noncopyable.h" template class Singleton : private noncopyable { protected: Singleton() = default; virtual ~Singleton() = default; public: static T* instance() { static T instance; return &instance; } }; #endif // !SINGLETON_H