Есть ли неатомарный эквивалент std :: shared_ptr? И почему нет такого в <memory>?

Это вопрос из двух частей, все об атомарности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 ++ исторически имел мантру «плати только за то, что используешь». Если я не использую несколько потоков, или если я использую несколько потоков, но не разделяю владение указателем между потоками, атомарный интеллектуальный указатель является излишним. Мой второй вопроспочему не была неатомарная версияstd::shared_ptr предоставляется в C ++ 11? (при условии, что естьПочему) (если ответ просто «неатомарная версия просто никогда не рассматривалась» или «никто никогда не просил неатомарную версию», это нормально!).

Что касается вопроса № 2, мне интересно, предлагал ли кто-нибудь неатомарную версиюshared_ptr (либо повысить, либо комитет по стандартам) (не заменять атомарную версиюshared_ptr, но чтобы сосуществовать с ним) и его сбили по определенной причине.

Ответы на вопрос(5)

Ваш ответ на вопрос