トップ 最新 追記

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2016-01-25 [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;
}

もっと簡易に書ける機能があるようだが、基本はこうなるようだ。

_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)
Qiita

トップ 最新 追記