Добрый день. Я напишу по памяти, возможно с ошибками:
#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;
}