The C++ FE holds class members in two vectors, a vector of overloaded methods and a vector of fields and other stuff. This is bad
1) These vectors are unsorted until the class is complete 2) When sorted they have O(log N) performance, and N can get resonably big these days 3) You have to look in two places 4) It won't play nice when we get using declarations right -- you can't tell at parse time whether a using declaration from a dependent base will be a function/field/other We should have one hash table per class to hold everything. -- Summary: [meta-bug] C++ member lookup Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: meta-bug Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: nathan at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18805