繁体   English   中英

原子 <int> 对于较旧的c ++编译器

[英]atomic<int> for older c++ compilers

我在我的代码中使用atomic<int> ,但是现在我正在编译的机器有一个旧的g ++版本,它不支持C ++ 11。 网上是否有可用的等效类,以便我可以在我的代码中使用它,或者如果没有,我可以在那里找到atomic<int>的C ++ 11实现,这样我就可以从那里复制它。 这可以轻松完成吗?

提议的(即非官方的) Boost.Atomic库旨在实现这一目标。 我不知道它目前处于什么状态,但它用于最近( 官方 )接受的Boost.Lockfree库的实现,所以可能它是可用的。


编辑 - 更新链接,现在Atomic和Lockfree已经正式进入Boost一段时间了:
Boost.Atomic
Boost.Lockfree

sig_atomic_t

这是一个可以作为原子实体访问的对象的整体类型,即使存在异步信号也是如此。

在gcc中是原子的

为避免中断对变量的访问的不确定性,您可以使用访问始终为原子的特定数据类型:sig_atomic_t。

Hans Boehm的原子操作库虽然很好,但很难确定各种平台上的可用内容。

如果你对LGPL没问题, 英特尔TBB也有你想要的东西(加上很多其他的东西)。

如果您关注GCC,那么您可以通过使用GCC的内在函数来逃避(我不确定那些出现在哪个版本的GCC,但它们已经存在了一段时间)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM