3 ms·
This does not seem like a strong argument. Yes, table salt is useful, but if you don't know what it actually does and you put it in your eyes, it will burn them
by lultimouomo 12y ago
This does not seem like a strong argument. Yes, table salt is useful, but if you don't know what it actually does and you put it in your eyes, it will burn them, just like most, well, everything...
A const reference guarantees to the caller that the callee won't modify the object, not to the callee that the object won't be modified.
- coliveira 12y agoExcept that it doesn't. Thanks to const_cast, you can take away constness from pointers, so where does your "guarantee" comes from?
- netheril96 12y agoThe guarantee is not against a malicious agent, but a reasonable programmer who may make mistakes.
- detrino 12y agoA function may not reliably cast a pointer-to-const-T to a pointer-to-T because T may actually be immutable, in which case modifying it would be UB. Like all casts, const_cast exists as an escape hatch in the type system for when you know that what you are doing is safe, even if the compiler can't prove it.