#ifndef BOOST_SINGLETON_H #define BOOST_SINGLETON_H template class Singleton { public: static T & instance() { static T obj; creator.do_nothing(); return obj; } private: struct object_creator { object_creator() { Singleton::instance(); } inline void do_nothing() const { } }; static object_creator creator; }; template typename Singleton::object_creator Singleton::creator; #endif // BOOST_SINGLETON_H