cppreferenceによると、volatile
キーワードのほとんどの使用はC ++ 20では推奨されません。の欠点はvolatile
何ですか?そして、使用しない場合の代替ソリューションは何volatile
ですか?
@ピーター揮発性の典型的な用途はどれが間違っていますか
—
curiousguy
volatile
それらは有用であるため、非推奨ではないいくつかの使用法があります(たとえば、デバイスドライバーなど、指定されたメモリロケーションから直接ロードまたは保存するコードで)。「非推奨の使用法」のかなりの数は、変数アクセスをアトミックにする手段として、あまりにも多くのプログラマーが誤って使用する機能を使用する能力に関連しています。C ++ライブラリは(C ++ 11以降)変数のアトミックアクセスを保証する正しい手段を提供するようになったためvolatile
、インテントがアトミックアクセスである場合にプログラマーが誤って使用しないようにするのは理にかなっています。