shared_ptrを使ったSingletonパターン
まだ試してないけど、こんな感じでできるのかな?
class singleton { static volatile shared_ptrinstance_; 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を使うのも無駄だってさ