This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/24163] New: Base class scope examined during unqualified name lookup
- From: "redi at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Oct 2005 16:24:49 -0000
- Subject: [Bug c++/24163] New: Base class scope examined during unqualified name lookup
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
(I first posted this code to PR5660 but it's apparently a separate issue)
template <typename T>
struct A
{
typedef T Type;
void f(Type) {}
};
template <typename T>
struct B : A<T>
{
typedef typename A<T>::Type Type;
void ff(Type t) { f(t); } // XXX
};
template struct B<int>;
This should fail to compile, according to 14.6.2/3, but 3.4 - 4.1 (and probably
earlier) accept it.
If A::f and the call to it are changed to take no arguments (so that f is not a
dependent name) then it fails, so it is apparently only at instantiation that
the base class scope is examined.
--
Summary: Base class scope examined during unqualified name lookup
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Keywords: accepts-invalid
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: redi at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24163