Согласно cppreference , большинство применений этого volatile
ключевого слова в C ++ 20 не рекомендуется. В чем недостаток volatile
? И каково альтернативное решение, когда не используется volatile
?
17
Согласно cppreference , большинство применений этого volatile
ключевого слова в C ++ 20 не рекомендуется. В чем недостаток volatile
? И каково альтернативное решение, когда не используется volatile
?
volatile
, которые НЕ устаревают, потому что они полезны (например, в коде, который напрямую загружается или хранится из указанных областей памяти, например, в драйверах устройств). Очень немногие из «устаревшие использования» связаны со способностью к особенностям использования , которые слишком много progammers используют - неправильно - как средство делает доступ к переменной атомное . Теперь библиотека C ++ (начиная с C ++ 11) обеспечивает правильные средства обеспечения атомарного доступа к переменным, поэтому имеет смысл отговаривать программистов от неправильного использования,volatile
когда целью является атомарный доступ.Ответы:
Есть хорошая беседа на кафедре развития языка комитета С ++ о том, почему.
Краткое резюме: многие места, из
volatile
которых удаляются, не имели никакого понятного значения и просто вызывали путаницу.источник