/* */ #ifndef D_SINGLETON_HOLDER_H #define D_SINGLETON_HOLDER_H #include "common.h" #include namespace aria2 { template class SingletonHolder { private: static std::unique_ptr instance_; SingletonHolder() {} public: ~SingletonHolder() {} static std::unique_ptr& instance() { return instance_; } static void instance(std::unique_ptr ptr) { instance_ = std::move(ptr); } static void clear() { instance_.reset(); } }; template std::unique_ptr SingletonHolder::instance_; } // namespace aria2 #endif // D_SINGLETON_HOLDER_H