Для любых двух оценок A и B, если A располагается перед B (или, что то же самое, B располагается после A), то выполнение A должно предшествовать выполнению B.
Рассмотрим этот пример:
Код: Выделить всё
#include
#include
int main(){
std::atomic v1;
std::atomic v2;
auto t1 = std::thread([&](){
v1.store(1,std::memory_order:relaxed); // #1
v2.store(2,std::memory_order:relaxed); // #2
});
t1.join();
}
Как интерпретировать здесь противоречие?
Подробнее здесь: https://stackoverflow.com/questions/798 ... olate-intr
Мобильная версия