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

jbeulich at novell dot com gcc-bugzilla@gcc.gnu.org
Mon May 3 10:24:00 GMT 2004


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



More information about the Gcc-bugs mailing list