https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122509
Bug ID: 122509
Summary: Base class name lookup only with qualified names
Product: gcc
Version: 15.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: jengelh at inai dot de
Target Milestone: ---
Input
=====
#include <vector>
struct D : public std::vector<double>, public std::vector<int> {
size_t z() { return this->vector<int>::size(); }
};
int main() {
D().vector<int>::size();
}
Observed output
===============
2.cpp: In function ‘int main()’:
2.cpp:6:13: error: request for member ‘vector’ is ambiguous
6 | D().vector<int>::size();
/usr/include/c++/15/bits/stl_vector.h:459:5: note: candidates are: ‘class
std::vector<int> std::vector<int>::vector’
/usr/include/c++/15/bits/stl_vector.h:459:5: note: ‘class
std::vector<double> std::vector<double>::vector’
Expected output
===============
Don't error out, based on observing clang 21.1.4 (with GNU libstdc++)
succeeding compilation with the same input.