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.

Reply via email to