alias overloading strange error
simendsjo via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jul 31 04:01:24 PDT 2015
On Friday, 31 July 2015 at 10:56:33 UTC, vitus wrote:
> //Why expression 'foobar(1);' doesn't work?
>
>
> void foo()(){}
> void bar(int){}
>
> alias foobar = foo;
> alias foobar = bar;
>
> void main(){
> .foobar(1); //OK
> foobar(1); //Error: overload alias 'foo' is not a variable
>
> }
foo is a template, while bar is a function. I would have thought
the `.foobar(1)` should have failed too... Must be some strange
lookup rules I don't know about (or a dmd bug).
`alias foobar = foo!();` should make it work in both cases though.
More information about the Digitalmars-d-learn
mailing list