簡體   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