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