The problem with the value that is returned from the condition in `static if`. Bug or feature?

Dennis Ritchie via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jun 7 01:49:37 PDT 2015


On Sunday, 7 June 2015 at 03:04:38 UTC, lobo wrote:
> On Sunday, 7 June 2015 at 03:01:15 UTC, lobo wrote:
>> On Saturday, 6 June 2015 at 17:06:37 UTC, Dennis Ritchie wrote:
>>> [snip]
>>
>> `static if(5 in hash) {}` will not work because (5 in hash) 
>> returns a pointer to the value or null if the key oesn't exist.
>>
>> bye,
>> lobo
>
> just to be clear, you cannot have a pointer to anything at 
> compile time because it doesn't exist and IMO changing 'in' to 
> behave differently for static-if compared  runtime if would be 
> bad.

This, of course, it is logical, but it somehow works:

immutable hash = [1 : 3, 5 : 7];

static if (!!(5 in hash))
     writeln("OK"); // prints OK


More information about the Digitalmars-d-learn mailing list