2
我试了一下在this问题描述类似的东西:替代std :: atomic_store(shared_ptr)为GCC <= 4.9?
// 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
派生提供所需的接口或只使用另一个原子操作?
还是我有提供外部互斥锁来保护读访问时,我店在全球指针的新对象?