Чому летуча застаріла в C ++ 20?


17

Відповідно до cppreference , більшість застосувань volatileключового слова повинні бути застаріли в C ++ 20. У чому недолік volatile? І яке альтернативне рішення, коли не використовується volatile?


13
Деякі способи використання volatileНЕ застаріли, оскільки вони корисні (наприклад, у коді, який безпосередньо завантажує або зберігає з визначених місць пам'яті, наприклад, у драйверах пристроїв). Дуже кілька «застарілих застосувань» пов'язані зі здатністю використовувати функції, які занадто багато прогмемерів використовують - неправильно - як засіб створення атомного змінного доступу . Зараз бібліотека C ++ (оскільки C ++ 11) забезпечує правильний спосіб забезпечення атомного доступу до змінних, тому має сенс відмовити програмістів від неправильного використання, volatileколи наміром є атомний доступ.
Петро


@Peter Які типові способи використання летких є невірними?
curiousguy

Відповіді:


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.