【发布时间】:2012-10-09 12:39:47
【问题描述】:
我有两个问题:
我想知道 C++11 和 C11 的标准是否会共享相同的内存模型规范。我读到是这样,事实上 C11 正在“继承”C++11 内存模型(无论出于何种历史原因,后者要么首先发生,要么同时发生/与同一个人发生,尽管我认为 Boehm,他是主要是 C++ 人,有很多话要说。),但我想确保请教知识渊博的人。
我的下一个问题是:GCC 会实现这个内存模型吗?我还没有看到这方面的路线图,想知道是否有人有“独家新闻”。
【问题讨论】:
-
作为评论,因为您没有直接询问这个问题:我认为最新版本的 clang 已经实现了这些模型。
-
@JensGustedt:谢谢,是的,我也想了解 clang,但我认为我在推动它,所以我试图集中这个问题。
-
@JensGustedt:看起来没有,它还没有实现,至少根据clang.llvm.org/cxx_status.html
-
@Dervin:重要的是要注意,当 GCC 或 Clang 说他们支持某些东西时,他们通常是认真的(当然减去错误)。他们不会说他们支持它,直到他们通过他们的代码库并合理地确保它符合规范的极端情况。另一方面,微软对这类事情采取了一种不那么严格的方法,直接声称"there appears to be nothing for a compiler implementation to do"。这是荒谬的。
-
@DervinThunk,您要求提供 model。它是通过新的内置函数实现的,请查看 clang.llvm.org/docs/LanguageExtensions.html#__c11_atomic 。必须在其周围添加的语法糖相对较少,因此很快就会出现。
标签: c++ gcc c++11 memory-model c11