https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111314
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced testcase: template <typename> struct Template1 {}; template <template <typename...> class, typename> struct DynamicType {}; template <typename T> struct is_dynamic_type { static constexpr bool value = false; }; template <template <typename...> class Template, typename... Ts> struct is_dynamic_type<DynamicType<Template, Ts...>> { static constexpr bool value = true; }; // This fails: static_assert(is_dynamic_type<DynamicType<Template1, int>>::value, "");