寻找 Win32 InterlockedExchangePointer 的便携、简单和优雅的替代品。理想情况下仅使用 C++11,但 boost 也可以。
最佳答案
standard atomic types有一个原子 exchange
功能。所以微软人
PVOID volatile target;
old_value = InterlockedExchangePointer(&target, new_value);
会变成
std::atomic<T*> target;
old_value = target.exchange(new_value);
关于c++ - InterlockedExchangePointer 是否有裸露的 c++ 11(或 boost)替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228257/