https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86933
Bug ID: 86933 Summary: GCC fails to recognize specialization of variadic non-type template parameter declared with `auto` Product: gcc Version: 8.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: d25fe0be at outlook dot com Target Milestone: --- The following code fails to compile, saying `TT<&X::x, &X::y>` is not defined. ```` template <auto... Vs> struct TT; template <class T, class... Ms, Ms T::*... Ptrs> struct TT<Ptrs...> {}; struct X { int x; double y; }; TT<&X::x, &X::y> t; ``` Not sure if related, the following code (reduced version) is rejected as well: ``` template <auto... Vs> struct TT; template <class... T, T*... Ptrs> struct TT<Ptrs...> {}; int x; double y; TT<&x, &y> t; ``` clang (5.0 or higher) accepts both. Live example: https://wandbox.org/permlink/ObPM2S5s0bsczNfk