https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90099
Bug ID: 90099 Summary: [P0732] Partial specialization of a class template with variadic parameter pack fails after adding non-type template parameter Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mateusz.pusz at gmail dot com Target Milestone: --- Hi, Compiling the code provided below with the following options produces an error: "-std=c++2a -Wall -Wextra" ``` struct Unit { int value; // auto operator<=>(const Unit&) = default; }; template<Unit U, typename... Ts> struct X {}; template<Unit U, typename T, typename... Rest> struct X<U, T, Rest...> {}; ``` Error: <source>:10:8: error: template argument '((Unit*)(void)0)->Unit::__ct_comp (((const Unit)U))' involves template parameter(s) 10 | struct X<U, T, Rest...> {}; | ^~~~~~~~~~~~~~~~ See also here: https://godbolt.org/z/OdmHCf Best Mat