AFAIK, changing a const variable results in undefined behavior and can only be done with unions, pointer arithmetic, const_cast, or placement new.
Mutable just means a member of a class/struct will never be const:
Code:struct MyStruct { int a; // Const-ness of 'a' depends on instantion mutable int b; // 'b' is never const (even if instance is const) const int c; // 'c' is always const (even if instance isn't const) };