首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为具有原子成员的类复制构造函数

为具有原子成员的类复制构造函数
EN

Stack Overflow用户
提问于 2013-11-13 17:59:54
回答 3查看 4.4K关注 0票数 5

我有一个带有原子成员的类,我想编写一个复制构造函数:

代码语言:javascript
运行
复制
struct Foo
{
    std::atomic<int> mInt;

    Foo() {}
    Foo(const Foo& pOther)
    {
        std::atomic_store(mInt, std::atomic_load(pOther.mInt, memory_order_relaxed), memory_order_relaxed);
    }
};

但是我不知道我必须使用哪种排序,因为我不知道何时何地会调用这个复制构造函数。

我可以对复制构造函数和赋值操作符使用relaxed排序吗?

EN

Stack Overflow用户

发布于 2015-10-04 21:16:59

如果您的复制操作应该与其他线程上的其他操作同步,则只需要比memory_order_relaxed更强的内存排序。

然而,这种情况几乎从未发生过,因为线程安全的复制构造函数几乎总是需要一些外部同步或额外的互斥对象。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19961043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档