C++11 是++;标准的原子::原子<;int>;

C++11 是++;标准的原子::原子<;int>;,c++11,atomic,C++11,Atomic,根据c++0x中的一个通道9 E2E视频(其中包含Herb Sutter),如果数字是原子的 number++是原子的。有人能证实最终的C++11标准是这样的吗(让我们假设它已经定稿:)。是的atomic operator++使用atomic::fetch\u add这是一种原子操作 p。1127该标准已定稿,且对atomic所有标准积分专业的每项操作都是原子的 这并不意味着所有涉及标准积分原子的表达式都是原子的 number = number * 2; 有两个操作: temporary =

根据c++0x中的一个通道9 E2E视频(其中包含Herb Sutter),如果数字是原子的
number++
是原子的。有人能证实最终的C++11标准是这样的吗(让我们假设它已经定稿:)。

是的
atomic operator++
使用
atomic::fetch\u add
这是一种原子操作

p。1127

该标准已定稿,且对
atomic
所有标准积分专业的每项操作都是原子的

这并不意味着所有涉及标准积分
原子的表达式都是原子的

number = number * 2;
有两个操作:

temporary = number * 2;
number = temporary;

它们每一个都是原子,但合在一起就不是了。这就是事务/关键部分的用途。

so number=number*2;数字=数字+47;也是原子的吗?为
原子定义的每个操作都是原子的,比如
number*=2和<代码>编号+=47
.number=number*2是两个操作。它们每一个都是原子,但合在一起就不是了。这就是“事务”的含义。答案很好,但是你能解释一下x=a.load()的情况吗;与x=a相同//x不是原子,a是相同的,但前提是它们不与任何其他获取/分配交互。看见