You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
//----
template bar(T)
{
void bar(){} //Non template
void bar(U)(U u){} //Template
}
template foo1()
{
void foo1()(){} //Template
void foo1(U)(U u){} //Template
}
template foo2()
{
void foo2(){} //Non template
void foo2(U)(U u){} //Template
}
void main()
{
bar!int(); //OK
bar!int(1); //OK
foo1(); //OK
foo1(1); //OK
foo2(); //OK
foo2(1); //NOPE!
}
//----
Results in:
//----
Error: template main.foo2 does not match any function template declaration. Candidates are:
main.foo2()()
Error: template main.foo2()() cannot deduce template function from argument types !()(int)
//----
I think this is not correct behavior. "bar" and "foo2" should have the same behavior. It *seems* like the compiler does not "see" foo2().foo2(U)(U u)
The workaround (as seen in foo1), is to make the non-template function a parameter-less template.
The text was updated successfully, but these errors were encountered:
monarchdodra reported this on 2013-12-10T02:52:55Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=11715
Description
//---- template bar(T) { void bar(){} //Non template void bar(U)(U u){} //Template } template foo1() { void foo1()(){} //Template void foo1(U)(U u){} //Template } template foo2() { void foo2(){} //Non template void foo2(U)(U u){} //Template } void main() { bar!int(); //OK bar!int(1); //OK foo1(); //OK foo1(1); //OK foo2(); //OK foo2(1); //NOPE! } //---- Results in: //---- Error: template main.foo2 does not match any function template declaration. Candidates are: main.foo2()() Error: template main.foo2()() cannot deduce template function from argument types !()(int) //---- I think this is not correct behavior. "bar" and "foo2" should have the same behavior. It *seems* like the compiler does not "see" foo2().foo2(U)(U u) The workaround (as seen in foo1), is to make the non-template function a parameter-less template.The text was updated successfully, but these errors were encountered: