This code: namespace N { class A{}; template<class T> void f( A ){}; } int main() { N::A a; f<int>(a); } results in the error: x1.cc: In function `int main()': x1.cc:10: `f' undeclared (first use this function) x1.cc:10: parse error before `>' token Release: gcc version 3.0 20010517 Environment: Configured with: ../gcc/configure i686-pc-linux-gnu --enable-shared --prefix=/opt --enable-languages=c,c++,f77 Thread model: single
Responsible-Changed-From-To: unassigned->gdr Responsible-Changed-Why: Analyzed.
State-Changed-From-To: open->analyzed State-Changed-Why: Confirmed as bug.
State-Changed-From-To: analyzed->closed State-Changed-Why: further investigation reveals that it is not a bug. See note 14.8/6: a template-id used to call a function disables Koenig lookup since it does not have the correct function call syntax.