https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116276
Bug ID: 116276
Summary: [14/15 regression] multiple inheritance CTAD
regression with -std=c++23
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: jason at gcc dot gnu.org
Target Milestone: ---
Interesting that this succeeds at -std=c++20. It works with -std=c++23 on the
13 branch.
template<typename T>
struct Base1 { };
template<typename T>
struct Base2 { };
template<typename T = int>
struct Derived : public Base1<T>, Base2<T> {
using Base1<T>::Base1;
using Base2<T>::Base2;
};
Derived d;
wa.C:13:9: error: class template argument deduction failed:
13 | Derived d;
| ^
wa.C:13:9: error: call of overloaded ‘Derived()’ is ambiguous
wa.C:2:8: note: candidate: ‘Derived()-> Derived<T> [with T = int]’
2 | struct Base1 { };
| ^~~~~
wa.C:8:8: note: candidate: ‘Derived()-> Derived<T> [with T = int]’
8 | struct Derived : public Base1<T>, Base2<T> {
| ^~~~~~~