primefaces<int>用于较旧的c ++编译器

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

Hans Boehm的原子操作库是好的,虽然很难确定在各种平台上可用的东西。

如果您使用LGPL,那么英特尔TBB也有您所需要的(还有其他许多东西)。

如果你只是在看GCC,那么你可能只能使用GCC的内部函数 (我不确定哪个版本的GCC出现在内 ,但是他们已经存在了一段时间了)。

拟议(即非官方) Boost.Atomic图书馆的目的是做到这一点。 我不知道它目前处于什么状态,但它用于最近( 正式 )接受的Boost.Lockfree库的实现,所以推测它是可用的。


编辑 – 更新的链接,现在原子和Lockfree已经正式在Boost一段时间:
Boost.Atomic
Boost.Lockfree

sig_atomic_t

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

在gcc中是原子的

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