c++ - 标准 C++ 事务内存状态

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

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

我问是因为一些标准化委员会的文件似乎在这里给出了相互矛盾的信息。一方面我们有 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 功能列表中列出了事务内存.

最佳答案

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

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

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

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

关于c++ - 标准 C++ 事务内存状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035856/

相关文章:

c++ - 如何在继续更新和绘制游戏项目的同时检查键盘输入

c++ - cpp的一些基本问题

c++ - 生成带有传递给模板的指针类型签名的函数

c++ - 文件创建时间的 std::filesystem::last_write_time() 等价物在哪里?

c++ - 事务中的线程信号

c++ - std::chrono 的问题

c++ - 每个C++ STL集合操作的算法效率

c++ - 如何使std::filesystem::directory_iterator依次列出文件名

x86 - 像 CLR 和 JVM 这样的运行时能够使用 Haswell TSX 指令吗?