Jonathan M Davis <jmdavisp...@gmx.com> wrote:
If a pure function takes a reference/pointer, does that state that the
result of
the function will be the same on two calls to it if the
reference/pointer points
to the same data in both cases or if the data itself is unchanged?
If it's a matter of pointing to the same data, then that could be
horribly
broken. That would mean that as long as I pased in the same reference,
the
compiler could cache the result but that the actual result of the
function could
have and should have been different for each call because the object
pointed to
was altered.
"[A] pure function [...] has parameters that are all immutable or are
implicitly convertible to immutable" [1]
This implies that any pointer passed to a pure function must point
to immutable data. This means the pointed-to data can not change
between two calls to the function.
[1]: http://digitalmars.com/d/2.0/function.html#pure-functions
--
Simen