これは、次の原子性に関する2つの部分からなる質問ですstd::shared_ptr。
1.
私が知る限り、それはアトミックstd::shared_ptrな唯一のスマートポインター<memory>です。std::shared_ptr利用可能な非アトミックバージョンがあるかどうか疑問に思っています(何も表示されない<memory>ので、Boostのような標準外の提案も受け付けています)。boost::shared_ptrアトミックでもあることは知っていますが(BOOST_SP_DISABLE_THREADS定義されていない場合)、別の選択肢があるのでしょうか?と同じセマンティクスを持つstd::shared_ptrが、原子性がないものを探しています。
2.なぜstd::shared_ptrアトミックなのか理解しています。ちょっといいです。ただし、すべての状況に適しているわけではなく、C ++には、歴史的に「使用した分だけ支払う」というマントラがありました。複数のスレッドを使用していない場合、または複数のスレッドを使用しているがスレッド間でポインターの所有権を共有していない場合、アトミックスマートポインターはやり過ぎです。私の2番目の質問は、なぜ非アトミックバージョンのstd::shared_ptrがC ++ 11で提供されなかったのかということです。(理由があると仮定して)(答えが単に「非アトミックバージョンは単に考慮されなかった」または「誰も非アトミックバージョンを要求したことがない」である場合は問題ありません!)
質問#2で、誰かがshared_ptr(Boostまたは標準化委員会のいずれかに)の非アトミックバージョンを提案したことがあるかどうか疑問に思っています(のアトミックバージョンを置き換えるのでshared_ptrはなく、それと共存するために)そしてそれは特定の理由。