Вот пример кода, о котором идет речь:
Код: Выделить всё
int dummy;
std::atomic ptr_to_int_1{&dummy};
std::atomic ptr_to_int_2{&dummy};
void t1() {
int* q = ptr_to_int_1.load(relaxed);
int* p = f(q);
// Can get moved before the load of ptr_to_int_1
ptr_to_int_2.store(p, relaxed);
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... tion-in-ru