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.

Reply via email to