[C++]Singleton
前回、Swiftでシングルトンの実装が楽になった件を発表したが、C++だとどうなるのか試してみた。
class Singleton {
Singleton* sharedInstance;
static mutex mtx;
static atomic flag_init;
Singleton* getInstance();
};
mutex Singleton::mtx;
atomic Singleton::flag_init {false};
Singleton* Singleton::getInstance()
{
if (! flag_init) {
mtx.lock();
if (! flag_init) {
sharedInstance = new Singleton();
flag_init = true;
}
mtx.unlock();
}
return sharedInstance;
}
もっと簡易に書ける機能があるようだが、基本はこうなるようだ。
関連情報 Adopting Cocoa Design Patterns【Cocoa練習帳】 http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)
Qiita