【问题标题】:alternative to std::atomic_store(shared_ptr) for GCC <= 4.9?GCC <= 4.9 的 std::atomic_store(shared_ptr) 的替代品?
【发布时间】:2016-08-02 12:31:36
【问题描述】:

我尝试了类似于this 问题中描述的内容:

// create copy
auto new_data(std::make_shared<some_class>(*this->data));

... // modify *new_data

// apply new data
std::atomic_store(&this->data, new_data);

.. 后来我意识到在其他安装了 gcc 4.8 的机器上它不起作用(就像在同一个问题中描述的那样)。

是否有解决方法 - 例如(暂时)从 std::shared_ptr 派生提供所需的接口或仅使用另一个原子操作?

或者当我在全局指针中存储一个新对象时,我是否必须提供一个外部互斥体来保护读取访问权限?

【问题讨论】:

    标签: c++ gcc shared-ptr atomic


    【解决方案1】:

    如果 Boost 是一个选项,一个选项当然是只使用 boost::shared_ptrboost::atomic_store 而不是 STL。它具有相同的界面,因此很容易更换。

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多