2013/4/9 Dicebot <m.strashun@gmail.com>On Tuesday, 9 April 2013 at 12:56:04 UTC, Andrei Alexandrescu wrote:Not gonna argue latter but former is just wrong.
It is valid code. It is "weak pure". "pure' keyword means both
"strong pure" or "weak pure" depending on function body. Crap.
s/body/signature/
s/Crap/Awesome/
struct Test
{
int a;
pure int foo1() // strong pure
{
return 42;
}
pure int foo2() // weak pure
{
return a++;
}
}
Signature is the same for both functions.
Both have weak pure. Purity is always calculated only from the function signature.If you make member function "strong pure", _at least_ it should be qualified with "immutable".pure int foo3() immutable // strong pure
{
return 10;
}Kenji Hara