https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94885
Bug ID: 94885 Summary: Functional cast from int to empty class incorrectly accepted with -std=c++2a Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ppalka at gcc dot gnu.org Target Milestone: --- The following testcase template <typename T, typename = decltype(T(0))> void foo(); struct base {}; struct derived : base {}; void bar() { foo<derived>(); } is rejected by GCC 9 (with both -std=c++17 and -std=c++2a) and rejected by GCC 10 with -std=c++17, but it's accepted by GCC 10 with -std=c++2a.