https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118454
--- Comment #6 from Sam James <sjames at gcc dot gnu.org> --- Reduced: ``` template <typename> struct complex_type; template <typename T> using complex = T; template <typename, long> class dual; template <typename T, unsigned long... Orders> void abs(dual<complex<T>, Orders...>); template <typename T, unsigned long... Orders> struct complex_type<dual<T, Orders...>>; ```