Thread overview
lambda template literals?
Jan 18, 2012
bearophile
Jan 18, 2012
Timon Gehr
Jan 18, 2012
bearophile
Jan 18, 2012
Philippe Sigaud
Jan 18, 2012
bearophile
January 18, 2012
Is code vaguely like this meaningful and useful?


void main() {
    alias (x => x ^^ 2) sqrTemplate;
}


Bye,
bearophile
January 18, 2012
On 01/18/2012 01:35 AM, bearophile wrote:
> Is code vaguely like this meaningful and useful?
>
>
> void main() {
>      alias (x =>  x ^^ 2) sqrTemplate;
> }
>
>
> Bye,
> bearophile

Yes. The fact that your particular example does not work is a mere syntactic issue.
This works:

template ID(alias a){alias a ID;}
void main(){
    alias ID!(x => x ^^ 2) sqrTemplate;
}

January 18, 2012
Timon Gehr:

> Yes. The fact that your particular example does not work is a mere
> syntactic issue.
> This works:
> 
> template ID(alias a){alias a ID;}
> void main(){
>      alias ID!(x => x ^^ 2) sqrTemplate;
> }

Thank you Timon, you are often good :-)
I'll add it as enhancement request.

Bye,
bearophile
January 18, 2012
On Wed, Jan 18, 2012 at 02:06, bearophile <bearophileHUGS@lycos.com> wrote:

>> template ID(alias a){alias a ID;}
>> void main(){
>>      alias ID!(x => x ^^ 2) sqrTemplate;
>> }
>
> Thank you Timon, you are often good :-)
> I'll add it as enhancement request.

This limitation (not being able to alias a lambda) is quite irksome. If you do an enhancement request, could you also add one for:

alias __traits(whatever, whatever) some Result;

Right now, the alias grammar doesn't allow this and I find this limitation jarring.
January 18, 2012
Philippe Sigaud:

> This limitation (not being able to alias a lambda) is quite irksome. If you do an enhancement request, could you also add one for:
> 
> alias __traits(whatever, whatever) some Result;
> 
> Right now, the alias grammar doesn't allow this and I find this limitation jarring.

It's better to add it yourself: http://d.puremagic.com/issues/show_bug.cgi?id=7308

Bye,
bearophile