http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55664
Bug #: 55664 Summary: Missing diagnostic "dependent using declaration resolved to type without 'typename'" Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: accepts-invalid, diagnostic Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org The following code is rejected by CLANG with: test.cxx:17:24: error: dependent using declaration resolved to type without 'typename' using super_t::base_type; ^ I think the error is correct, but g++ doesn't diagnose it. namespace std { namespace thrust { template < typename Derived > class iterator_adaptor { typedef Derived base_type; }; template < typename Derived > struct pointer_base_base { typedef thrust::iterator_adaptor < Derived > type; }; template < typename Derived > class pointer_base : public pointer_base_base <Derived > :: type { typedef typename pointer_base_base < Derived > :: type super_t; using super_t::base_type; }; template < unsigned int DummyParameterToAvoidInstantiation > void mymalloc (thrust::pointer_base< void >) { }; } }