На самом деле, не совсем так. На x86 memory order не будут работать так, как описаны в стандарте. Архитектурно не предусмотрено. Любое атомарное действие автоматически синхронизирует кэши безо всякого переупорядочивания. По сути, любой из предложенных memory order-ов будет seq_cst.
Спасибо. Про влияние компилятора я не подумал. Буду теперь в курсе.
На самом деле, не совсем так. На x86 memory order не будут работать так, как описаны в стандарте. Архитектурно не предусмотрено. Любое атомарное действие автоматически синхронизирует кэши безо всякого переупорядочивания. По сути, любой из предложенных memory order-ов будет seq_cst.
А вот всякие армы такое умеют.
Спасибо за статью! Почерпнул много интересного!