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 >) { };

  }

}

Reply via email to