C ++标准库同时具有word boundaries和free functions用于原子比较和交换操作。
正如member functions所述:
这些函数是根据std :: atomic:
的成员函数定义的
- obj-> compare_exchange_weak(*预期,期望)
- obj-> compare_exchange_strong(*预期,期望)
- obj-> compare_exchange_weak(*预期,期望,succ,失败)
- obj-> compare_exchange_strong(*预期,期望,succ,失败)
醇>
拥有免费功能的原因是什么?仅仅拥有会员功能还不够吗?他们不是做同样的事吗?
答案 0 :(得分:6)
与C stdatomic.h
操作保持一致。
如果使用自由函数,相同的原子操作代码将在C和C ++中起作用,只需要有条件地定义typedef。