bearophile wrote:
canalpay:
Thanks, But this example works:
void main()
{
    T input(T)()
    {}

}

 Why ?

You are right. Beside allowing nested functions (this is well known), it seems 
D2 also accepts the definition (with template constraint too) and instantiation 
of simple templates inside functions, I didn't know this.

But currently nested functions can't be overloaded. Probably for similar 
reasons inside a function you can't define more than one template with the same 
name. I presume this limit can be removed, so if you really need this you can 
ask for an enhancement request and if you can add a patch too to increase a bit 
the probability to see it fulfilled someday.

Bye,
bearophile

The spec explicitly says:
"Unlike module level declarations, declarations within function scope are processed in order. This means that two nested functions cannot mutually call each other:

[snip]

Future directions: This restriction may be removed."

My guess is that it will become possible eventually.

Reply via email to