Meaning of pure member function
H. S. Teoh
hsteoh at quickfur.ath.cx
Mon Jan 16 21:18:01 PST 2012
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? Based on
Andrei's book, 'pure' means that the function's result depends only on
its input. And based on the fact this code compiles, I deduced that
'this' is included as part of the function's input.
However, the function is clearly changing one of its inputs (changing a
member of 'this'). Furthermore, what on earth is 'pure void' supposed to
mean and why does the compiler accept it?
Changing the function to read:
pure int f() { return x++; }
also compiles without any complaint from the compiler. Yet calling
writeln() from within f() produces an error. Why?
T
--
Computerese Irregular Verb Conjugation: I have preferences. You have
biases. He/She has prejudices. -- Gene Wirchenko
More information about the Digitalmars-d-learn
mailing list