https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118760
Bug ID: 118760
Summary: Alias template in dependent base used via
injected-class-name incorrectly rejected
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: herring at lanl dot gov
Target Milestone: ---
GCC trunk rejects
template<int>
struct base {
template<class T> using id=T;
};
template<int I>
struct derived : base<I> {
typename derived::/*template*/ id<int> i;
};
derived<1> x;
complaining that the type of derived<1>::i is not a class type. This is true,
of course, but hardly an error. (The commented-out template is for Clang
comparison; it was rendered unnecessary by CWG1710, but Clang still erroneously
requires it.)