1// PR c++/66536 2// { dg-do compile { target c++14 } } 3 4template <typename> struct make_impl; 5struct Tuple; 6template <> struct make_impl<Tuple> {}; 7struct A { 8 template <typename X> auto operator()(X) { return make_impl<Tuple>(); } 9}; 10template <typename> A make; 11template <typename _Tp, int> struct array { _Tp _M_elems; }; 12struct Tracked { 13 Tracked(int); 14}; 15struct B { 16 Tracked tracker{0}; 17}; 18template <int> using ct_eq = B; 19auto eq_arrays = make<Tuple>(array<ct_eq<0>, 0>{}); 20