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