To help LDC/GDC
kenji hara
k.hara.pg at gmail.com
Tue Apr 9 07:07:40 PDT 2013
2013/4/9 Dicebot <m.strashun at gmail.com>
> On Tuesday, 9 April 2013 at 12:56:04 UTC, Andrei Alexandrescu wrote:
>
>> 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/
>>
>
> Not gonna argue latter but former is just wrong.
>
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130409/14339b5b/attachment.html>
More information about the Digitalmars-d
mailing list