5

C++17 的事务性内存提案的当前状态是什么。它会被包含在标准中,旨在包含在标准 C++ 的某些未来版本中,还是只是一个实验性的概念验证功能,其标准化状态仍未确定?

我之所以问,是因为标准化委员会的一些文件似乎在这里给出了相互矛盾的沟通。一方面我们有 P0265R0 ( http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0265r0.pdf ) 说事务内存不会被标准化,另一方面手 - Stroustrup ( http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4492.pdf ) 有一篇 N4492 论文,其中 C++17 功能列表中列出了事务内存。

4

1 回答 1

7

很快:事务性内存 TS 已经发布,第二个版本正在开发中。但是,委员会不打算将其纳入标准中的近特征。这种选择有几个原因:

  • 实施经验不足。自 GCC6 以来,只有 g++ 实现了它。TS 的目标部分是为了收集实现和用户体验,所以这么大的功能在这方面仍然太“不成熟”。

  • 不是每个目标都支持事务性内存,而且它的实现成本很高,并不是每个人都需要它。由于这些原因,委员会显然不确定 TS 是否应该成为主要 C++ 标准的一部分。它还不如永远作为 TS 存在。

  • 此外,并非所有人都认为事务性内存 TS 的每个特性都值得包含在主要的 C++ 标准中。一些人认为这synchronized是主要特征,而另一些人则认为原子块是真正的游戏规则改变者。TS确实增加了库实现者必须处理的另一个认知开销(以及几个新关键字,这通常不被视为一件好事)。

于 2016-08-19T13:18:53.630 回答