Exemplo de C ++ “barreira de memória” [duplicado]

Esta questão já tem uma resposta aqui:

Barreiras de memória C ++ para o Atomics 2 respostas

Eu estava lendo a resposta a essa pergunta sobre a palavra-chave volátil:

https://stackoverflow.com/a/2485177/997112

A pessoa diz:

A solução para evitar a reordenação é usar uma barreira de memória, que indica ao compilador e à CPU que nenhum acesso à memória pode ser reordenado nesse ponto. Colocar tais barreiras em torno de nosso acesso variável e volátil garante que até mesmo acessos não voláteis não sejam reordenados em todo o volátil, permitindo-nos escrever código seguro para thread.

No entanto, as barreiras de memória também garantem que todas as leituras / gravações pendentes sejam executadas quando a barreira é alcançada, de modo que efetivamente nos fornece tudo o que precisamos por si só, tornando a volatilidade desnecessária. Podemos apenas remover o qualificador volátil inteiramente.

Como essa "barreira de memória" é implementada em C ++?

EDITAR:

Alguém poderia dar um exemplo de código simples, por favor?

questionAnswers(3)

yourAnswerToTheQuestion