https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82894
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Even one without templates: struct S { char f(); }; struct wrapper : private S { int f(int = 0); using S::f; }; void g(void) { wrapper t; t.f(); } And yes it was rejected in GCC 6.4.0.