CrossFramework Library
|
#include <XBase/ExplicitSingleton.hpp>
明示的に生成・解放できるシングルトン。
継承して使用します。
継承先のコンストラクタで SetInstance() を呼びデストラクタで UnsetInstance() を呼ぶようにしてください。
2つ以上インスタンス化させるとエラーになります。
// 例 class Manager : public ::XBase::ExplicitSingleton< Manager > { public: Manager() { SetInstance( *this ); } ~Manager() { UnsetInstance(); } int value()const { return 1; } }; void func() { // Managerが作成済みならこのようにアクセスできる return Manager::Instance().value(); }
アクセス | |
static T & | Instance () |
作成済みのインスタンスにアクセス。 | |
static bool | IsCreated () |
作成済みならtrueを返す。 | |
コンストラクタとデストラクタ | |
ExplicitSingleton () | |
~ExplicitSingleton () | |
Protected メソッド | |
void | SetInstance (T &) |
インスタンス化が終わったときに呼ぶ。 | |
void | UnsetInstance () |
インスタンス化を解除したいときに呼ぶ。 |