[英]Can you cast away volatile on a member from a volatile function>
如果您有一个标记为volatile的类成员函数,当在该函数中使用volatile时,是否可以将volatile抛弃在该类成员上?
是。 为了消除对象的const_cast
,使用const_cast
:
T & t = const_cast<T&>(volatile_t);
就是这样 但是无论是否在代码中使用它,我都必须先看一下代码才能说。 总的来说,抛弃常数和易失性是一个危险的想法,只有在仔细检查所有情况后才能进行。
您可以使用const_cast
从任何上下文中消除volatile
。 您是在问是否要丢弃volatile
成员内部的内容,但这没有任何区别。
函数中的volatile
是一项检查,它告诉编译器不要抱怨您尝试在volatile
对象上(或通过对volatile
对象的引用或指针)调用该方法,该方法与成员的volatile
无关。
我想说的是,如果您期望访问数据成员时的行为与volatile
语义一致, 只是因为代码位于volatile
成员方法内部,则不会发生这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.