To help LDC/GDC

John Colvin john.loughran.colvin at gmail.com
Thu Apr 11 03:16:38 PDT 2013


On Thursday, 11 April 2013 at 10:03:39 UTC, deadalnix wrote:
> On Thursday, 11 April 2013 at 08:36:13 UTC, Joseph Rushton 
> Wakeling wrote:
>> On 04/10/2013 08:39 PM, Walter Bright wrote:
>>> Sure there is. Declare the function as pure, and the 
>>> function's parameters as
>>> const or immutable.
>>
>> Sure, I accept that.  What I was meaning, though, was an 
>> up-front declaration
>> which would make the compiler shout if those necessary 
>> conditions were not met.
>>
>> i.e.
>>
>>       pure foo(int n) { ... }     // compiles
>>
>>       strong pure bar(int n) { ... } // compiler instructs you 
>> to make
>>                                      // variables const or 
>> immutable
>
> Both are strongly pure.

is foo strongly pure because of n being a value type that cannot 
contain any indirection? (i.e. as far as the outside world is 
concerned you don't get any side effects whatever you do with it).

Is the same for structs that contain no indirection? Or do they 
have to be const/immutable?


More information about the Digitalmars-d mailing list