>>250
ある
>static std::shared_ptr<T> O = std::make_shared<T>(A...);
全体が排他されないとしたら、Oの生成関数(初期化式「O=」の右辺)が複数回、
それも同期的に繰り返し呼ばれるのではなく、非同期的に再入される形で呼ばれかねない
生成関数の中でリソース確保するとしたら先の呼び出しで確保したリソースの
ハンドルがdunglingにならないように配慮が必要になる
非同期的再入ということは、Oが生成→破棄→生成→破棄、にならず、
生成→生成→破棄→破棄になりかねないから、デストラクタをちゃんと書いたらリークしないとか
そういう認識で当たったらバグる
問題山積や

メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、