https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84297
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Reduced, hopefully still valid. But clang++ accepts it. struct integral_constant {}; template <bool> using __bool_constant = integral_constant; template <typename _Tp, typename... _Args> struct A : __bool_constant < __is_trivially_constructible(_Tp, _Args...)> {}; A<int, int &()> a; Started with r226381.