guard clause style static if

Alex sascha.orlov at gmail.com
Sat Jul 7 13:12:59 UTC 2018


On Saturday, 7 July 2018 at 12:54:03 UTC, kdevel wrote:
> On Saturday, 7 July 2018 at 12:46:08 UTC, rikki cattermole 
> wrote:
>> On 08/07/2018 12:40 AM, kdevel wrote:
>>> Interesting alternative
>>
>> That was not an alternative.
>> That is what your code was doing.
>
> What my original code was supposed to do. But it did not 
> compile.
>
>    Error: array index [0] is outside array bounds [0 .. 0]
>    Error: string slice [1 .. 0] is out of bounds
>
> My question is if it is intentionally failing to compile a 
> static if guard clause.

The site you cited for the guard clause above (c2.com)
works at runtime. The intention is to shorten the paths inside a 
function, I think. Therefore, a static "guard clause" is a 
contradiction, if I understand it correctly.

The constraint in form fun(...)(...) if(...) is a static 
construct. Therefore, all parts should be mentioned statically. 
And by

https://dlang.org/spec/version.html#staticif
paragraph: 24.5.4.2

a static if does not introduce a new scope. So, the argument 
about arrow code is not valid here.


More information about the Digitalmars-d-learn mailing list