c++ - InterlockedExchangePointer 是否有裸露的 c++ 11(或 boost)替代品?

标签 c++ multithreading winapi c++11 boost

寻找 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/

相关文章:

c++ - 来自 QWidget::createWindowContainer 的范式 sizeHint()?

c++ - 像没有 shift 修改器一样获取原始 key

C++ - vector push_back() 在 fgets() 之后不工作

Java重新做一段代码...使用线程

python - 在 Python 中使用 WlanScan 强制 wifi 扫描

winapi - 确定Windows系统宽字体

c++ - PlaySound 无法播放两个异步声音

c++ - 更改 MAC 地址,通过注册表不起作用

java - 线程数组 Java 矩阵

java - 局部变量和线程安全