提升原子128位原子类型x86_64

时间:2014-01-29 13:58:11

标签: c++ boost atomic

我如何使用boost :: atomic<>模板,以便我得到真正的128位(16字节)CAS,加载和存储? 问题是即使是强大的提升1.55.0原子库说它现在有128位支持我只能得到假的自旋锁仿真实现。例如。以下代码将失败:

struct ui128_t { uint64_t low, high; };
boost::atomic<ui128_t> atom;
assert(atom.is_lock_free());

我检查了BOOST_ATOMIC_INT128_LOCK_FREE宏,由于某种我不知道的原因,该宏被设置为false。我正在使用MSVC 2012 x64编译器。

1 个答案:

答案 0 :(得分:2)

此功能尚未实际发布:它似乎只在“主干”中。

您可以使用命令行

grep -R BOOST_ATOMIC_INT128_LOCK_FREE boost/

找出哪些编译器支持它