GCC 原子内置函数,移植到 Windows/Visual Studio

Seb*_* B. 5 c windows gcc atomic interlocked

我正在开发一个依赖 GCC 的atomic built-ins 的项目。在将项目移植到 Windows 时,我试图找到 GCC 原子的 Interlocked* 对应项。大多数操作实际上都可用,但我想念应用的操作__ATOMIC_CONSUME__ATOMIC_ACQ_REL内存语义。由于 _*Barrier 内在函数已被弃用,Microsoft建议使用std::atomic(例如atomic_thread_fence)和类似的 C++11 标准。

我想知道:C 程序员应该做什么,我们如何在不使用 C++11 的情况下实现atomicswith__ATOMIC_CONSUME__ATOMIC_ACQ_REL语义的可移植版本?

Ela*_*ich 0

您应该考虑使用mintomics的部分内容