Partially instantiated template as argument to alias parameter.

Yuxuan Shui via Digitalmars-d digitalmars-d at puremagic.com
Wed Nov 4 15:12:50 PST 2015


On Wednesday, 4 November 2015 at 23:10:09 UTC, Vladimir Panteleev 
wrote:
> On Wednesday, 4 November 2015 at 23:07:42 UTC, Yuxuan Shui 
> wrote:
>> I think this is a reasonable use case:
>>
>> auto A(R, S)(R a,S b) {return a+b;}
>>
>> auto B(alias f)(){return f(1, 1.0);}
>>
>> void main{writeln(B!(A!int)());}
>
> Currently this is doable by moving the parameters that are to 
> be explicitly instantiated to an outer template:
>
> template A(R)
> {
>     auto A(S)(R a,S b) {return a+b;}
> }

I'm aware of this, but this is clumsy and limiting.

For example, I can have a template with N parameters, I want to 
be able to use any partially instantiation of this template as 
arguments.


More information about the Digitalmars-d mailing list