This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
multiple inheritance abiguity
- From: Rich Johnson <rjohnson at dogstar-interactive dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Wed, 18 Jan 2006 20:51:09 -0500
- Subject: multiple inheritance abiguity
Hi folks--
Compiling the following (with no options) produces an ambiguity error:
>>file: bug.cpp >>>>>>>>>
struct C1 { void f( double ){}; };
struct C2 { void f( int ){}; };
class M : public C1, public C2 {};
int main()
{
double c1;
M m;
m.f(c1);
}
<<<<<<<<<<<<<<<<<
The specific error report is:
$ g++ bug.cpp -o bug
bug.cpp: In function `int main()':
bug.cpp:11: error: request for member `f' is ambiguous
bug.cpp:2: error: candidates are: void C2::f(int)
bug.cpp:1: error: void C1::f(double)
I've tried both g++(4.0.0 20041026) on Mac OS X 10.4.4, g++(4.0.3
20051201) on debian(powerpc) unstable. and g++-3.3.6 (Debian
1:3.3.6-10). All three report the same error.
Is the code proper C++? If not, what am I missing?
Given that there's there's only one method with a ''void f(double)"
signature where's the source of the ambiguity?
Thnx
--rich