Добрый день. Я напишу по памяти, возможно с ошибками:
#include <iostream>
#include <thread>
int *ptr;
void fn()
{
    // Воткнуть ли aquire барьер?
    std::cout << *ptr;
}
int main()
{
    ptr = new int{0};
    // Воткнуть ли release барьер?
    std::thread t(fn);
    t.join();
    return 0;
}




