История изменений
Исправление eao197, (текущая версия) :
Нужен, если мы говорим о случаях вроде shared memory, где компилятор будет уверен, что никто переменную менять не может и её можно кешировать.
Какую-такую переменную?
Если она в C++ атомарная (т.е. std::atomic<T>), то никакой volatile для нее не нужен.
Если она не атомарная, то тогда мы реально заходим на очередной круг вокруг рукопашной борьбы с барьерами. Только вот нахера это нужно и зачем кому-то трахаться с этими самыми барьерами решительно непонятно, если у нас уже есть std::atomic со всем этим вот из коробки.
Ну либо приведите пример кода, который бы подтверждал вашу мысль. Пример C++ного кода.
Исходная версия eao197, :
Нужен, если мы говорим о случаях вроде shared memory, где компилятор будет уверен, что никто переменную менять не может и её можно кешировать.
Какую-такую переменную?
Если она в C++ она атомарная (т.е. std::atomic<T>), то никакой volatile для нее не нужен.
Если она не атомарная, то тогда мы реально заходим на очередной круг вокруг рукопашной борьбы с барьерами. Только вот нахера это нужно и зачем кому-то трахаться с этими самыми барьерами решительно непонятно, если у нас уже есть std::atomic со всем этим вот из коробки.
Ну либо приведите пример кода, который бы подтверждал вашу мысль. Пример C++ного кода.