http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56333
Bug #: 56333 Summary: cannot use typedef name in inheriting constructor Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: pot...@mac.com struct b {}; struct d : b { using t = b; using t::t; }; error: no members matching ‘d::t {aka b}::t’ in ‘using t = struct b {aka struct b}’ This is defined by §3.4.3.1/2: In a lookup in which the constructor is an acceptable lookup result and the nested-name-specifier nominates a class C: … — in a using-declaration (7.3.3) that is a member-declaration, if the name specified after the nested-name-specifier is the same as the identifier or the simple-template-id’s template-name in the last component of the nested-name-specifier, the name is instead considered to name the constructor of class C.