Нужно ли отмечать STD:: ATOMIC с VOLATILE?
Я уже привык оба
volatilce
резюме И std::atomic
класс сепарталей теперь я задаюсь вопросом, должен ли я объединить их, чтобы обеспечить надлежащий доступ?В общем, если предположить, что у меня есть какие-то глобально-статический атомный флаг, будет ли это так
std::atomic<bool>
ОПЕРАЦИОННАЯ std::atomic_flag
, на самом деле не имеет значения (как я это вижу), должен ли я пометить его как volatile
?Я посмотрел на
std::atomic::operator
= описание[^] И он имеет специфическую изменчивую реализацию:Цитата:T оператор= (T желаемый );
T оператор= (T желаемый ) Летучий;
В качестве
volatile
квалифицированная функция-член используется с volatile
экземпляры ("volatile: лучший друг многопоточного программиста", По Андрей Александреску), те, кто разработал такой интерфейс класса, предполагали, что там будет volatile
объекты класса созданы для какой-то цели, так что, очевидно, есть какая-то причина для этого.Что я уже пробовал:
ДА я отношусь с пониманием
volatile
против atomic
diffirence [например, "фитонциды и летучие", По Херб Саттер]