gpt4 book ai didi

c++ - make_pair 是原子的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 16:04:58 27 4
gpt4 key购买 nike

std::pair<Object, OtherObject*> currentData;

void OnCallback()
{
Object object = getObject();
OtherObject* otherObject = new OtherObject();
currentData = std::make_pair(object, otherObject);
}

make_pair 是原子的吗? make_pair 会将字段从其返回值复制或移动到 currentData 吗?如果我有另一个线程访问 currentData 的值,是否有可能 currentData 的值在被访问时不完整?

不幸的是,我没有在 make_pair 的标准文档中看到任何相关信息。 .

最佳答案

make_pair() 是否是原子的无关紧要。

If I have another thread accessing the value of currentData, is there any potential that currentData's value will be incomplete when it's accessed?

这里唯一的问题是 std::pair 的赋值运算符是否是原子的,因为它决定了赋值操作是否是线程安全的。赋值发生之前发生的事情,以及被赋值的值是如何产生的,与赋值操作的原子性完全无关。

这个赋值操作不是原子的,也不是线程安全的。

关于c++ - make_pair 是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com