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

Reply via email to