使用const_cast删除volatile属性

时间:2010-09-04 17:56:52

标签: c++

我听说可以使用const_cast运算符删除变量的易失性。

在哪些场景中我们需要删除变量的易失性? 有什么好的用例吗? 是dangerours操作,因为我们宣称它是不稳定的思维,它将被外部因素修改,并且消除易变性可能会停止对它的修改。特别是当易失性指针是寄存器等时。

1 个答案:

答案 0 :(得分:3)

当你这样做时,行为是不确定的。请注意,从实际引用非易失性变量的表达式中删除volatile并从引用volatile变量的表达式中删除volatile是不同的。后者是您所询问的,它会导致未定义的行为。标准法

  

如果尝试通过使用具有非volatile限定类型的左值来引用使用volatile限定类型定义的对象,则程序行为未定义。