Search code examples
c++castingvolatile

How to cast away the volatile-ness?


How to cast away the volatile-ness? Which c++ style cast should I use?


Solution

  • Use const_cast.

    For example,

    volatile sample *pvs = new sample();
    sample *ps = const_cast<sample*>(pvs); //casting away the volatile-ness
    

    That is, const_cast is used to cast away both const-ness as well as volatile-ness. Unfortunately, its name doesn't contain the term "volatile". Maybe, that is because the keyword const is more common in use than the keyword volatile. As one of the comment says, cv_cast would have been more appropriate name!