【问题标题】:GCC atomic builtins, port to Windows/Visual StudioGCC atomic builtins,移植到 Windows/Visual Studio
【发布时间】:2014-09-19 14:50:40
【问题描述】:

我正在开发一个依赖于 GCC 的 atomic built-ins 的项目。在将项目移植到 Windows 时,我试图找到 GCC atomics 的 Interlocked* 对应项。大多数操作实际上都是可用的,但我错过了应用 __ATOMIC_CONSUME__ATOMIC_ACQ_REL 内存语义的操作。由于 _*Barrier 内在函数是 deprecated,Microsoft advises 使用 std::atomic(例如 atomic_thread_fence)等 C++11 标准。

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

【问题讨论】:

  • 当然,“正确”的方法可能是回退到更强的语义,即分别为 __ATOMIC_ACQUIRE 和 __ATOMIC_SEQ_CST...
  • Visual Studio 2013 是否支持 C11?我认为它只有 std::atomic...

标签: c windows gcc atomic interlocked


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多