Hi. I'm writing a lookuptable container derived from 2 std::vectors (one public, one private). The issue I came across can be witnessed by trying to compile: [CODE] #include <iostream> #include <cstdlib> using namespace std; struct A { int i; }; struct B { int i; }; class C : public A, private B { }; int main() { C T; cout << T.B::i; cout << T.i; return 0; } [/CODE] Compiler output: bugtest.cpp:24: error: request for member `i' is ambiguous bugtest.cpp:13: error: candidates are: int B::i bugtest.cpp:8: error: int A::i bugtest.cpp:25: error: `B' is an inaccessible base of `C' Huh? If this is not a bug (thanks to some efficient committee), there are 2 possible workarounds: 1. compile code as is :-)
-- Summary: Non-ambiguous member in multiple inheritance reported ambiguous (All Versions) Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hrbattenfeld at gmx dot de CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20556