UFCS confusion

Radu void at null.pt
Fri Jul 13 10:52:54 UTC 2018


On Friday, 13 July 2018 at 10:21:54 UTC, Michael wrote:
> Hello,
>
> I am nesting some function calls, and I'm pretty used to making 
> use of D's Uniform Function Call Syntax, but I'm getting an 
> error if I try to convert this line:
>
>> createSet(createVector(langSize, index)).length;
>
> which works, into this line:
>
>> createVector(langSize, index).createSet.length;
>
> receiving the error "Error: no property createSet for type 
> int[]", when the signature for createSet is:
>
>> static auto createSet(in int[] vector) pure
>
> What am I missing here? I'm sure it's stupidly obvious but it 
> expects one argument, so I'm just calling it without 
> parentheses.

Do you try to call member functions? UFCS only works with free 
functions, meaning declared at module level.

https://dlang.org/spec/function.html#pseudo-member


More information about the Digitalmars-d-learn mailing list