To help LDC/GDC
Jacob Carlborg
doob at me.com
Mon Apr 8 11:56:45 PDT 2013
On 2013-04-08 20:14, Simen Kjaeraas wrote:
> Like others have stated, it's so you can do this:
>
> struct Foo {
> int a = 0;
> pure int bar( int n ) { // Weakly pure
> a += n;
> return a;
> }
> }
>
> pure int Baz( int n ) { // Strongly pure
> Foo foo;
> return foo.bar( n );
> }
>
> Foo.bar has only local mutability, so if the Foo originated in a
> (strongly) pure function, Foo.bar can be called inside that pure
> function without violating the purity requirement.
>
> The three levels (weakly pure/strongly pure/impure) are needed,
> but a redesign would perhaps use a different keyword for weakly
> pure.
I see.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list