On Mon, 09 Aug 2010 11:04:40 -0400, Steven Schveighoffer
<schvei...@yahoo.com> wrote:
On Mon, 09 Aug 2010 10:53:48 -0400, BCS <n...@anon.com> wrote:
OTOH that is effectively a hidden cast and has 100% of the same issues
(re undefined behavior) as casting away const while being slightly
harder to find.
But you just said that casting and reading is not undefined? Isn't this
the same thing?
Const is such a strange beast because it plays no role in code
generation, it's effectively only a tool to help the compiler decide
what is possible. It doesn't occupy any space or translate whatsoever
to the underlying code.
I think there are definite good uses for writing to const or immutable
data besides ones that can be stored in ROM. That is, if you are sure a
const or immutable piece of data is on the heap/stack, it should be
reasonable to be able to modify it for performance gains.
I should say, when performance gains are not possible because of the
limitations of the const/immutable notation. The classic example is the
mutable cache for avoiding recalculations on an immutable object.
-Steve