/volatile (Interpretação da palavra-chave volatile)
Especifica como a palavra-chave volatile deve ser interpretada.
/volatile:{iso|ms}
Arguments
/volatile:iso
Seleciona a semântica estrita de volatile conforme definido pela linguagem ISO C++ padrão. A semântica de aquisição/liberação não é garantida em acessos voláteis. Se o compilador direciona o ARM, essa é a interpretação padrão do volatile./volatile:ms
Seleciona a semântica estendida de volatile da Microsoft, o que adiciona garantias de solicitação de de memória além da linguagem C++ padrão ISO. A semântica de aquisição/liberação é garantida em acessos voláteis. No entanto, essa opção também força o compilador a gerar as barreiras de memória de hardware, que podem adicionar uma sobrecarga significativa ao BRAÇO e a outras arquiteturas fracas de classificação de memória. Se o compilador direciona qualquer plataforma exceto o ARM, essa é uma interpretação padrão do volatile.
Comentários
É altamente recomendável que você use /volatile:iso junto com primitivos explícitos de sincronização e os intrínsecos de compilador quando estiver tratando a memória que é compartilhado entre threads. Para obter mais informações, consulte volatile (C++).
Se você portar o código existente ou alterar essa opção no meio de um projeto, poderá ser útil habilitar o aviso C4746 para identificar locais de código afetados pela diferença na semântica.
Não há equivalente de #pragma para controlar esta opção.
Para definir a opção /volatile do compilador no Visual Studio
Abra a caixa de diálogo Páginas de Propriedade para o projeto. Para obter mais informações, consulte Como abrir páginas de propriedade do projeto.
Selecione a pasta C/C++.
Selecione a página de propriedades Linha de Comando .
Na caixa Opções adicionais, adicione /volatile:iso ou /volatile:ms.