我知道boost::atomic
不是boost库的官方部分,但我已经看过它在stackoverflow上多次提到过,所以我想我会试一试。我应该在发布此帖之前说明我已经搜索过google,stackoverflow和boost::atomic
的文档。
我从http://www.chaoticmind.net/~hcb/projects/boost.atomic/下载了boost::atomic
并将其复制到我的boost文件夹中。但是,我遇到的问题实际上是在被包含之后进行编译,我认为代码中存在错误。导致问题的一个功能是这个
static inline void
platform_fence_after_load(memory_order)
{
if (order == memory_order_seq_cst()) {
x86_full_fence(void);
}
}
第一个问题是order
未定义,memory_order_seq_cst
不是函数,x86_full_fence
不应该将void作为参数。修复这些错误很容易,但我不确定它们是否是其他东西的症状。有没有人以前使用boost::atomic
?它是否稳定,是否正常工作?最后,这些实际问题是boost::atomic
还是我没有正确使用它?任何帮助将不胜感激。
答案 0 :(得分:1)
我已经使用了很长时间它很稳定但是它在标题interlocked.hpp
中有一些问题,其中一个问题由你解决并且很容易解决它而另一个是一个函数不是声明为inline
,因此它会生成一个链接器错误,但在解决它们AFAIK后它真的没有任何问题