标准C ++事务内存状态

时间:2016-08-19 09:43:05

标签: c++ c++17 transactional-memory

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

我问,因为一些标准化委员会的文件似乎在这里提供了相互矛盾的沟通。一方面我们有P0265R0(How to change href of <a> tag on button click through javascript)说事务内存不会标准化,另一方面 - Stroustrup(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0265r0.pdf)有一篇N4492论文,C +中列出了事务性内存+17功能列表。

1 个答案:

答案 0 :(得分:5)

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

  • 没有足够的实施经验。自GCC6以来,只有g ++实现它。 TS的目标部分是为了收集实施和用户体验,因此这样一个重要特征仍然过于“不成熟”。

  • 并非每个目标都支持事务性内存,并且实施成本较高,而并非所有人都需要它。由于这些原因,委员会显然不确定TS是否应该成为主要C ++标准的一部分。它可能永远像TS一样生活。

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