P0668R4 对此进行了解释

The definition of plain happens-before became unpleasantly complicated with the introduction of memory_order_consume. And it is not transitive, which remains counterintuitive. This proposal changes neither of those. And if the user refrains from using memory_order_consume it can continue to be entirely ignored, as before. Until we have a usable version of memory_order_consume, I would expect teaching materials to ignore these issues, and pretend that happens-befors is defined as our simply-happens-before relation, which is clearly transitive. In the presence of memory_order_consume, this problem is unavoidable, since consume can order two accesses without also ordering the first with respect to an access that immediately follows the second; happens-before cannot compose with sequenced-before, and thus happens-before cannot be transitive.

在不使用 memory_order_consume 的情况下,happens-before 可以视为可传递,否则为不可传递。C++17 提出了 strongly happens before,排除了 memory_order_consume,是可传递的,可以和 sequenced-before 进行组合。

最新文章

  1. Java截图笔记
  2. .Net的基础概念
  3. PHP 安全检测代码片段
  4. (转载)四种常见的 POST 提交数据方式
  5. CSS Sprites的详细使用步骤
  6. D - Specialized Four-Digit Numbers
  7. SD卡在单片机上的应用
  8. Nhibernate初入门基本配置(一)
  9. 【HTTP 2】 序言
  10. usb调试
  11. 芯片SIAT-002测试PCB板设计
  12. Linux学习之路4——文件IO打开、创建、读写操作
  13. winform界面特效470多例
  14. iperf3 不支持双工模式
  15. ESP-EYE V2.1 开发板 WINDOWS 10 开发入门
  16. 高可用Hadoop平台-Hue In Hadoop
  17. 10.24CRM完成
  18. C166-变量和函数指定物理地址一
  19. 写了一个简单的Linux Shell用来下载文件
  20. 我的Quartz笔记

热门文章

  1. 实用QPS和TPS高的高效分析方法
  2. 【Vue.js】SPA
  3. buu misc 1-32 wp
  4. Timer定时器的使用
  5. C++ 编译错误记录
  6. 洛谷 P3676 - 小清新数据结构题(动态点分治)
  7. Codeforces 576D - Flights for Regular Customers(bitset 优化广义矩阵乘法)
  8. pycurl报错: ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend
  9. VSCode + PicGo + Github + jsDelivr 搭建稳定快速高效图床
  10. 【基因组注释】同源注释比对软件tblastn、gamp和exonerate比较