Files
Radio/module/radio/Toolbox_private/SingletonWidget.hpp
T
2026-06-16 13:38:08 +08:00

30 lines
864 B
C++

#ifndef Toolbox_SingletonWidget_H
#define Toolbox_SingletonWidget_H
#include <QDebug>
namespace Toolbox {
template<typename T>
class SingletonWidget {
public:
static T *instance() {
if (!mInstance) {
qInfo() << "error SingletonWidget 未创建" << mInstance;
}
return mInstance;
}
SingletonWidget() {
if (mInstance) {
qInfo() << "error SingletonWidget 重复创建" << mInstance;
}
mInstance = static_cast<T *>(this);
}
virtual ~SingletonWidget() {}
SingletonWidget(T &&) = delete;
SingletonWidget(const T &) = delete;
void operator=(const T &) = delete;
protected:
static T *mInstance;
};
template<typename T> T *SingletonWidget<T>::mInstance = nullptr;
}
#endif