This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/15260] New: base class typedef referred through 'using' declaration still unusable without qualification


template<typename T> class n;

template<typename T> class b {
protected:
	typedef n<T> n_t;
};

template<typename T> class d : private b<T> {
	using typename b<T>::n_t;
public:
	n_t*test0();
	typename n_t*test1();
	typename b<T>::n_t*test2();
};

void test() {
	d<int> di;
	di.test0();
	di.test1();
	di.test2();
}

results in errors on the unqualified uses of n_t in class d. I cannot see
anything invalid with these constructs, nor can Intel's or a couple of other
compilers I tried this with.

-- 
           Summary: base class typedef referred through 'using' declaration
                    still unusable without qualification
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jbeulich at novell dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-suse-linux
  GCC host triplet: i686-suse-linux
GCC target triplet: i686-suse-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15260


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]