https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68313
Bug ID: 68313 Summary: "using" shadows declaration Product: gcc Version: unknown Status: UNCONFIRMED Severity: minor Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: wd11 at leicester dot ac.uk Target Milestone: --- The following valid code (modified from bug 37374) namespace N1 { void f() {} } namespace N2 { template<typename X> void f(X); using N1::f; } template<typename X> void N2::f(X) {} template void N2::f(int); main() { N2::f(0); } is rejected (gcc 5.1.0), claiming that void N2::f(int) is not declared in namespace N2. A similar error occurs in the following code: namespace N1 { void f() {} namespace N2 { template<typename X> void f(X); using N1::f; template<typename X> void f(X) {} template void f(int); } } when the using declaration is redundant.