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.

Reply via email to