http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56090
--- Comment #3 from Klemens <klemensbaum at gmail dot com> 2013-01-23 22:32:47 UTC --- I would argue that in 3.4.3.1.2 the constructor is not an acceptable lookup result, since it would result in the code being invalid. Additionally, the following use of a type alias (where the constructor is clearly not an acceptable lookup result) does not compile on my g++-4.7.1: struct foo { using bar = foo::foo::foo; };