Template currying

Ed via Digitalmars-d digitalmars-d at puremagic.com
Thu May 5 16:12:40 PDT 2016


On Thursday, 5 May 2016 at 22:53:01 UTC, Yuxuan Shui wrote:
> On Thursday, 5 May 2016 at 21:54:29 UTC, Ed wrote:
>> On Thursday, 5 May 2016 at 20:17:08 UTC, Yuxuan Shui wrote:
>>> [...]
>>
>> It's hard to help without a minimal working example (maybe 
>> something with just the body).
>>
>> If you mean that "alias new_parser = Comb!(a, b);" generates 
>> an error maybe that's because the correct syntax is "alias 
>> new_parser(Range) = Comb!(a, b);" ?
>>
>> One issue you may encounter is that template parameter 
>> deduction (that's called IFTI I think) can fail with an alias 
>> (so partially specialized template/templatized function, etc).
>
> Simple example:
>
>     int a(int b, T)(T c){return 0;}
>
> It's fine to:
>
>     a!1(2);
>
> But:
>
>     alias A = a!1;
>
> Would fail.

alias aa(T) = a!(1,T);
aa!ubyte(2);

Your alias declaration is not correct.


More information about the Digitalmars-d mailing list