在C ++ 11中: 如果我增加一个原子变量(std :: atomic上的operator ++),新值是否与内存屏障一起存储?或者我必须明确地做商店吗?
答案 0 :(得分:9)
您不需要做明确的商店。将使用顺序一致性内存排序。
指定operator++(int)
operator++()
atomic<
类型的 integral
和>
具有fetch_add(1)
的效果,最终使用默认的内存排序memory_order_seq_cst
调用成员函数。
关于规范环顾对原子类型的操作的要求 [atomics.types.operations.req] 29.6.5 / 33