https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86918

--- Comment #4 from Vladimir Reshetnikov <v.reshetnikov at gmail dot com> ---
I could not find a wording in the Standard that disallows this kind of
specialization (although certainly I might have overlooked it). A similar code
where the template parameter list is changed in a specialization compiles
successfully with GCC:

template<class>
struct Outer {
    template<char... x>
    struct Inner;
};

template<>
template<bool... x>
struct Outer<void>::Inner { 
    static constexpr auto value = sizeof...(x);
};

static_assert(Outer<void>::Inner<>::value == 0); // OK

Reply via email to