【发布时间】: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