On Mon, 16 Dec 2002, Mark Mitchell wrote:
> Hmm - as both, lhs and rhs are declared const, isnt this enough to tell
> the compiler? Or has the compiler to assume every function call can
> have a side-effect on any (but local) variable?
This is the classic "pointer aliasing" problem for compilers; the
modifications to lhs (via the write operatin in the loop) might,
from the compiler's point of view, change the rhs. The copies allow
a good compiler to tell that this cannot happen.
Ah, of course. But only change the data (via the engines data pointer
which is aliasing), the lhs/rhs objects themselves usually will not alias
as they are of different types (in nearly all cases). So the copy doesnt
help the aliasing problem?