ISO/IEC 14882:2011 (C++ 11) 的 § 1.10.11 定义了评估之间的“线程间发生之前”关系,其与 § 1.10.12 中的“发生之前”关系的唯一区别是 A 发生在 B 之前,如果A 在 B 之前排序,但这对于 A 线程间发生在 B 之前是不够的。为什么“线程间发生在之前”重要到足以保证单独的定义?
§ 1.10.11 中的一个注释表明“线程间发生在之前”不允许评估其唯一关系是部分“之前排序”
允许“线程间发生之前”被传递关闭
这意味着什么?我知道什么是传递闭包,我知道集合在某些操作上被关闭意味着什么,但我从来没有听说过“传递闭包”,而且谷歌和上下文都让我失望了。