[英]Atomic doubles/floats in Intel TBB
您可以轻松地添加对基于64位和32位原子整数的浮点数的支持。 可以使用reinterpret_cast将原子加载/存储/交换实现为直接包装,可以使用具有原子比较交换的循环来实现原子算术运算。
C ++ 11支持原子浮点数和双精度数。 std::atomic_fetch_add
,仅整数类型支持std::atomic_fetch_add
类的算术函数。
如果您使用的是C ++ 11编译器,建议您切换到std::atomic
这样就不必依赖未记录的行为。
test_atomic.cpp中的非整数类型测试是在2008年添加的(与Raf讨论之后不久)。 因此,由于甚至早于提出问题的时间,TBB就支持float&double原子(尽管仅限于fetch_and_store和compare_and_exchange读取-修改-写入操作)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.