shared_ptrを使ったSingletonパターン

まだ試してないけど、こんな感じでできるのかな?


class singleton {
    static volatile shared_ptr instance_;

    singleton() {}
public:
    static shared_ptr get_instance()
    {
        if(!instance_)
            instance_ = new singleton();
        return instance_;
    }

    void something()
    {
        ...何か処理
    }
};

int main()
{
    singleton::get_instance()->something();

    return 0;
}


shared_ptrを使うといままで苦労した諸々の問題が一気に解決しますね。


Singletonパターンは
マルチスレッドプログラミングでのグローバルアクセスポイントが必要なときに使おう


ボツ。
マルチスレッド対応のSingletonはそんなに甘いものじゃなかったです。

shared_ptrを使うのも無駄だってさ