view gcc/testsuite/g++.dg/cpp1y/var-templ30.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line source

// PR c++/66536
// { dg-do compile { target c++14 } }

template <typename> struct make_impl;
struct Tuple;
template <> struct make_impl<Tuple> {};
struct A {
  template <typename X> auto operator()(X) { return make_impl<Tuple>(); }
};
template <typename> A make;
template <typename _Tp, int> struct array { _Tp _M_elems; };
struct Tracked {
  Tracked(int);
};
struct B {
  Tracked tracker{0};
};
template <int> using ct_eq = B;
auto eq_arrays = make<Tuple>(array<ct_eq<0>, 0>{});