2017-09-07 56 views

回答

0

正如@ 0xBADF00所建议的那样,希望用它们的C++11 std::atomic等价物替换这些呼叫。 MSVC有full supportstd::atomic,因为VS 2012

但是,如果由于某种原因你不想这样做(例如,你希望你的代码编译在VS 2010),在Visual C++的std::atomic_compare_exchange_strong当量InterlockedCompareExchange功能。请注意,这些函数不使用模板,因此可以使用不同大小的基元的变体,例如InterlockedCompareExchange64。因此,它们不能用作直接替换,因为您将需要为正在使用的类型使用适当的版本。