【发布时间】:2020-04-01 01:50:59
【问题描述】:
根据cppreference,volatile 关键字的大多数用途将在 C++20 中被弃用。 volatile的缺点是什么?不使用volatile时的替代解决方案是什么?
【问题讨论】:
-
volatile的某些用途未被弃用,因为它们很有用(例如,在直接从指定内存位置加载或存储的代码中,例如在设备驱动程序中)。相当多的“不推荐使用”与使用太多程序员使用的功能的能力有关 - 错误地 - 作为使变量访问原子的手段。现在的 C++ 库(自 C++11 起)提供了确保对变量进行原子访问的正确方法,因此在意图是原子访问时阻止程序员错误地使用volatile是有意义的。 -
@Peter volatile 的哪些典型用法不正确?