// よく見かけるSingletonの実装。
// 最初のGetInstance()でインスタンスを作る。

// xxx.h ファイル側
class Singleton {
  static Singleton* instance;
  Singleton() {}
public:
  Singleton* GetInstance() {
    if( instance == 0 ) instance = new Singleton();
    return instance;
  }
}

// で、xxx.cpp 側が
Singleton::instance = 0;
ってなってたりするんだけど、これ
Singleton::instance = new Singleton();
ってやっちゃだめなのかな。

「GetInstance()メソッドでマルチスレッドの時の排他が〜」
なんて問題について議論してるWebサイトとか結構見るのだけど、
GetInstance()の外でインスタンスを作ればええやん。なぁみんな。