https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63362
--- Comment #17 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Ville Voutilainen from comment #16) > > This one: > > > > #include <type_traits> > > > > template <typename T, class... Args> > > struct mytrait : public std::__and_<std::is_constructible<T, Args...>, > > std::integral_constant<bool, > > __is_trivially_constructible(T, Args...)>>::type > > { > > } Yeah, that works fine for me. Perhaps the ICE is related to changes you've made to type_traits?