1 // PR c++/32565
2 // { dg-do compile { target c++11 } }
3 
4 template<typename...> struct A1;
5 template<template<int...> class T> struct A1<T<0> > {};
6 template<typename...> struct A2;
7 template<template<int...> class T> struct A2<T<0, 1> > {};
8 template<typename...> struct A3;
9 template<template<int, int...> class T> struct A3<T<0, 1> > {};
10 template<typename...> struct A4;
11 template<template<typename...> class T> struct A4<T<int> > {};
12 template<typename...> struct A5;
13 template<template<typename...> class T> struct A5<T<int, long> > {};
14 template<typename...> struct A6;
15 template<template<typename, typename...> class T> struct A6<T<int, long> > {};
16 template<int> struct B1 {};
17 template<int, int> struct B2 {};
18 template<typename> struct B3 {};
19 template<typename, typename> struct B4 {};
20 A1<B1<0> > a1;
21 A2<B2<0, 1> > a2;
22 A3<B2<0, 1> > a3;
23 A4<B3<int> > a4;
24 A5<B4<int, long> > a5;
25 A6<B4<int, long> > a6;
26