On 9/23/14 5:17 AM, bearophile wrote:
Marc Schütz:
http://wiki.dlang.org/User:Schuetzm/scope
If a mutable argument of a function is tagged as unique, the type system
guarantees that there are no other references to it. So can a function
'foo' like this be "strongly pure"?
int[] foo(unique int[] a) pure {
a[0]++;
return a;
}
I don't think so. Strong pure function optimizations would not work for
something like:
auto x = foo(a) ~ foo(a);
Which for a strong pure function could be optimized to:
auto r = foo(a);
auto x = r ~ r;
-Steve