The following should compile according to this DR report (but it is only in ready state so I am going to confirm it and then suspend it): class a {}; typename ::a f();
Also the following should not compile as a is not qualified then: class a {}; typename a f(); -- Summary: [DR 382] qualified names should allow typename keyword in front of it (even in non-templates) Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22154