https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86355
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Reduced: namespace std { template <typename _Tp, _Tp __v> struct integral_constant { static constexpr _Tp value = __v; }; template <typename> struct is_constructible; template <typename, typename> struct is_same : integral_constant<bool, true> {}; } // namespace std template <bool B> using mp_bool = std::integral_constant<bool, B>; using mp_true = mp_bool<true>; template <class... T> using mp_all = mp_bool<(T::value && ...)>; template <class... T> using check2 = mp_all<mp_all<std::is_constructible<T>..., mp_all<>>>; static_assert(std::is_same<check2<>, mp_true>::value);