Why is this pure?

Alex Rønne Petersen via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Aug 24 23:34:05 PDT 2014


On Monday, 25 August 2014 at 06:27:00 UTC, Shachar wrote:
> The following program compiles, and does what you'd expect:
>
> struct A {
>     int a;
> }
>
> pure int func( ref A a )
> {
>     return a.a += 3;
> }
>
> As far as I can tell, however, it shouldn't. I don't see how or 
> why func can possibly be considered pure, as it changes a state 
> external to the function.
>
> What am I missing? Or is this just a compiler bug?
>
> Shachar

http://klickverbot.at/blog/2012/05/purity-in-d/


More information about the Digitalmars-d-learn mailing list