/cp
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / var-templ30.C
blobe89aa7c2f24ea0832d08aed255be0febc64c8db1
1 // PR c++/66536
2 // { dg-do compile { target c++14 } }
4 template <typename> struct make_impl;
5 struct Tuple;
6 template <> struct make_impl<Tuple> {};
7 struct A {
8   template <typename X> auto operator()(X) { return make_impl<Tuple>(); }
9 };
10 template <typename> A make;
11 template <typename _Tp, int> struct array { _Tp _M_elems; };
12 struct Tracked {
13   Tracked(int);
15 struct B {
16   Tracked tracker{0};
18 template <int> using ct_eq = B;
19 auto eq_arrays = make<Tuple>(array<ct_eq<0>, 0>{});