Hacker News new | past | comments | ask | show | jobs | submit login

You can also use const_cast to remove the const-ness. You could then mutate the value.

I believe that's undefined behavior territory (the mutation, at least in most cases), but I'm sure someone is doing it in the wild.




I haven't done much C++ in a few years but IIRC you can remove const as long as the "original" value isn't const. So `const_cast((*const Foo)foo)` is fine if foo is not const.


Isn’t the linker entitled to put a constant object in a read-only page of the binary if it doesn’t require a ctor at runtime?


Yes. That is why global static `const`s (with exceptions like if they have mutable fields) can't legally have their `const` casted away.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: