1 // PR c++/64521
2 // { dg-options "-frepo -std=c++11" }
3 // { dg-require-host-local "" }
4 // { dg-skip-if "dkms are not final links" { vxworks_kernel } }
5 // { dg-final cleanup-repo-files }
6
JJ7 template <typename H> struct J { J(H) {} };
8 template <unsigned long, typename...> struct K;
9 template <unsigned long I> struct K<I> {};
10 template <unsigned long I, typename H, typename... T>
11 struct K<I, H, T...> : K<I + 1, T...>, J<H> {
12 K(const H &p1, const T &... p2) : K<I + 1, T...>(p2...), J<H>(p1) {}
13 };
14 template <typename... E> struct C : K<0, E...> {
15 C(const E &... p1) : K<0, E...>(p1...) {}
16 };
17 template <typename> struct A {
18 A() = default;
19 };
20 struct M;
21 template <typename> struct L {
22 struct B {
23 template <typename> static M *__test(...);
24 typedef A<int> _Del;
25 typedef decltype(__test<_Del>()) type;
26 };
27 C<typename B::type, A<M>> _M_t;
28 L(typename B::type) : _M_t(0, A<M>()) {}
29 };
30 struct M {};
31 int main() { L<int>(new M); }
32