sort!("...") with template function?
Vladimirs Nordholm
v at vladde.net
Mon Feb 25 12:54:03 UTC 2019
On Monday, 25 February 2019 at 12:47:47 UTC, Simen Kjærås wrote:
> On Monday, 25 February 2019 at 12:37:31 UTC, Vladimirs Nordholm
> wrote:
>> Hello.
>>
>> I wish to sort an array by calling a template function on a
>> struct. In essence I want to do
>>
>> foos.sort!("a.get!Dummy < b.get!Dummy");
>>
>> but I get the error message
>>
>>
>> /dlang/dmd/linux/bin64/../../src/phobos/std/functional.d-mixin-215(215): Error: undefined identifier Dummy
>>
>> Is there anyway I can get `sort` to recognise my Dummy type?
>>
>> Example: https://run.dlang.io/is/9zDfdd
>
> foos.sort!((a,b) => a.get!Dummy < b.get!Dummy);
>
> String functions can't access the local scope, and thus can't
> see Dummy. Using lambdas works. (string functions were
> basically a workaround for no decent lambda syntax back in the
> time when dinosaurs roamed the earth)
>
> --
> Simen
Ah, thank you for the explanation Simen!
More information about the Digitalmars-d-learn
mailing list