Код: Выделить всё
[intro.races]< /code> < /h3>
7 Оценка A [b] происходит до < /strong> Оценка b, если < /p>
(7.1) - A последовательно перед B или
(7.2) - синхронизирует с B или
(7.3) - x и x. /> [Примечание 7: Оценка не проводится до себя. Атомные операции
( щутомику.dorder]), или
(12.3) - есть оценки B и C, такие как A, перед B, B, B просто происходит до C, а C секвенировали до D или
(B, b>
n. Неофициально, если он сильно случается до B, то A, по -видимому, оценивается до B во всех контекстах. - End Note]
(жирная шахта)
Разница между ними кажется очень тонкой. «Трево это случается раньше» никогда не было правдой для сопоставления пар или операций по приобретению выпуска (если оба не являются SEQ-CST), но в некотором смысле это все еще уважает синхронизацию релиза [/b], поскольку операции, посвященные, перед релизами, которые сильно происходят до того, как это различии, посвященные, после того, как подходящие. Введены в C ++ 20 и Pre-C ++ 20, «случается раньше», которые использовались «сильно случаются раньше». Почему это было введено? < /P>
[atomics.order]/4Подробнее здесь: https://stackoverflow.com/questions/705 ... imply-happ