const_cast
还可用于忽略对象是 volatile
的事实。然而,这实际上意味着什么?我想不出在 volatile
变量上使用 const_cast
的示例??
最佳答案
永远不要忽略变量是 volatile
的事实, const
或类似的。
这样做会导致 Undefined Behavior .
什么const_cast
虽然允许,但让编译器假设您转换的对象实际上并没有因此合格,即使您拥有的指针/引用是这样说的。
一如既往,对编译器撒谎的惩罚是 UB。
一个常见的示例是定义一个具有限定和非限定成员函数的类,以启用 const/ volatile 正确性,非限定版本是完成所有工作的限定版本周围的内联包装器。
volatile
不过,在低级驱动程序/微 Controller 代码之外非常罕见。
关于c++ - 使用const_cast忽略 volatile ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221842/