Singleton

Singletonは意外と難しいみたい。

考えておかなければならないこと:

  • いつ破棄されるのか
    • 破棄時に他のSingletonが必要になったらどうする?→Loki参照
      • でも稀過ぎるケースなのでfectiでは無視
  • マルチスレッド環境での二重生成
    • static実装(Mayor実装)でも回避不可
    • とりあえず明示的に生成するようにする。
  • テンプレートを用いて一般化した場合のコンストラクタ引数
    • Policyを渡してやる->Loki参照
    • fectiでは明示的生成にnewされたポインタを渡せるようにする。(ST::createInst(new ASDF(some, param))