汎用シングルトンを作成することは可能ですか? 継承できるものを作成して、シングルトンの機能を取得したいと考えています。静的メンバーを含むテンプレートの使用に問題があります。
これはうまくいかないのですか?
**
更新しました
**
これまでの返信に感謝します。だから今私の問題は、GameEngine がそれ自身のコンストラクターを認識できないことです。私はそれがプライベートであることを知っていますが、それでも.
Singleton.h
template <typename T>
class Singleton
{
private:
static std::shared_ptr<T> m_Instance;
public:
static std::shared_ptr<T> Instance();
};
template<typename T>
std::shared_ptr<T> Singleton<T>::m_Instance = nullptr;
template<typename T>
std::shared_ptr<T> Singleton<T>::Instance()
{
if(m_Instance == nullptr)
m_Instance = std::make_shared<T>();
return m_Instance;
}
GameEngine.h
class GameEngine : public Singleton<GameEngine>
{
private:
GameEngine();
};