我的代碼如下所示:compare_exchange_weak()編譯錯誤?
void C::addB(std::atomic<B>& b)
{
B* b2 = b.load();
B newValue = B();
bool result = b.compare_exchange_weak(b2, newValue, std::memory_order_relaxed, std::memory_order_release);
}
和編譯器不斷抱怨簽名不匹配compare_exchaneg_weak的三名成員重載形式:
note: candidate expects 3 arguments, 4 provided
灌裝和改變b2'的'類型'B',[這編譯正確](http://coliru.stacked-crooked.com/a/a5456b5fa5fe1bd2)。也許你的標準庫實現有問題? – Casey 2014-12-02 18:24:19