This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/15272] New: lookup, dependent base
- From: "belz at kolumbus dot fi" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 May 2004 22:29:05 -0000
- Subject: [Bug c++/15272] New: lookup, dependent base
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Following code:
struct X
{
void f();
};
struct Y
{
void f();
};
template <typename Base>
struct A : Base, X {
virtual void foo()
{
f();
}
};
int main()
{
A<Y> t;
}
gives error message:
j_test.cpp: In member function `void A<Base>::foo() [with Base = Y]':
j_test.cpp:21: instantiated from here
j_test.cpp:16: error: request for member `f' is ambiguous
j_test.cpp:4: error: candidates are: void X::f()
j_test.cpp:9: error: void Y::f() = Y]':
Even though the dependent base should not be considered.
This seems to happen only when foo is virtual and f is found from
non-dependent base.
Using:
Reading specs from /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.1/specs
Configured with: ../gcc/configure --enable-languages=c++,c,f77
--enable-threads=posix
Thread model: posix
gcc version 3.4.1 20040501 (prerelease)
--
Summary: lookup, dependent base
Product: gcc
Version: 3.4.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: belz at kolumbus dot fi
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15272