2012-11-30 51 views
2

我知道boost::atomic不是boost庫的官方部分,但我已經看到它在stackoverflow上提到過很多次,所以我認爲我會放棄它。我應該通過說我已經搜索谷歌,stackoverflow和boost::atomic文檔之前發佈此prefice這篇文章。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不應該有空洞作爲參數。修復這些錯誤很容易,但我不確定它們是否是其他問題的症狀。有沒有人在這裏使用過boost::atomic?它是否穩定,並能正常工作?最後,這些實際上與boost::atomic問題,或者我只是沒有正確使用它?任何幫助,將不勝感激。

回答

1

我已經使用它很長一段時間它是相當穩定的,但它有一些問題在標題interlocked.hpp,其中一個問題是由你解決,它是很容易解決它和其他一個功能是沒有聲明爲inline ,所以它會產生一個鏈接器錯誤,但解決它們後AFAIK它確實工作沒有任何問題