In the following example: namespace NS { class T { }; void g(T, int) { } } NS::T parm; void g(NS::T, float) { } int main() { extern void g(NS::T, float); g(parm, 1); }
program should call void ::g(NS::T, float), but g++ calls NS::g(T, int). -- Summary: g++ violate [basic.lookup.argdep] Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pi3orama at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42026