Another purity question

David Nadlinger code at klickverbot.at
Tue Jan 14 12:21:23 PST 2014


On Tuesday, 14 January 2014 at 19:50:10 UTC, bearophile wrote:
> But is it possible for D to see that bar function as pure?

In the general case, no:

---
auto foo(const int[] a) {
     int bar() {
         return a[0];
     }
     return &bar;
}

void main() {
     int[3] a;
     auto dg = foo(a[]);
     assert(dg() == 0);
     a[0] = 1;
     assert(dg() == 1);
}
---

David


More information about the Digitalmars-d-learn mailing list