2014-04-10 22 views
0

我的目標系統具有支持C++ 0x(但不支持C++ 11)的g ++ 4.6.3。我正在使用一個atomic_int來存儲我在兩個線程之間訪問的狀態變量。但是,似乎沒有爲此類型定義的不等於運算符。我如何比較atomic_ints?C++如何比較atomic_ints?

回答

0

由於atomic_int的轉換運算符,您應該能夠直接進行比較。如果這不起作用,那麼你只需要找到一個編譯器特定的解決方法。或許,如果你明確地投下他們或使用load()成員函數或atomic_load()非成員函數,將工作:

static_cast<int>(a) == static_cast<int>(b) 

a.load() == b.load() 

atomic_load(&a) == atomic_load(&b) 

你應該注意,這不是一個原子任何形式的比較,所以一定要確保你不試圖做一些你不應該與這種比較。