Meaning of pure member function
Jesse Phillips
jessekphillips+D at gmail.com
Mon Jan 16 21:40:15 PST 2012
On Tuesday, 17 January 2012 at 05:16:33 UTC, H. S. Teoh wrote:
> The following code compiles without error:
>
> class C {
> int x;
>
> // what does 'pure void' mean??
> pure void f() {
> x++; // why is this legal?
> }
> }
>
> What does 'pure' mean when applied to a member function?
This is a weakly pure function usable by strongly pure functions.
Namely it is a helper function to those that can claim to be
strongly pure.
Maybe bearophile's blog will shed some light:
http://leonardo-m.livejournal.com/99194.html
Or stackoverflow:
http://stackoverflow.com/questions/5812186/pure-functional-programming-in-d
> Furthermore, what on earth is 'pure void' supposed to
> mean and why does the compiler accept it?
Well it can only be useful as a weakly pure function as those are
allowed to modify their arguments.
In any case, if the function was strongly pure:
pure void foo() {}
any call to it would just be eliminated as having no side effects.
More information about the Digitalmars-d-learn
mailing list