#pragma once #include namespace Flex_Qt { template class Singleton_Widget { public: static T* instance() { if (!instance_) qInfo() << "error Singleton_Widget not created" << instance_; return instance_; } Singleton_Widget() { if (instance_) qInfo() << "error Singleton_Widget duplicated" << instance_; instance_ = static_cast(this); } virtual ~Singleton_Widget() = default; Singleton_Widget(T&&) = delete; Singleton_Widget(const T&) = delete; void operator=(const T&) = delete; protected: static T* instance_; }; template T* Singleton_Widget::instance_ = nullptr; } // namespace Flex_Qt