1 // Contributed by Dodji Seketeli <dodji@redhat.com>
2 // Origin: PR c++/41785
3 // { dg-do compile { target c++11 } }
4 
5 struct a {};
6 
7 template < typename T, typename ENCLOSING >
8 struct base;
9 
10 template < typename... T >
11 struct derived
12   : public base< T, derived< T... > >...
13 {};
14 
15 template < typename... T>
16 struct base< a, derived< T... > >
17 {
18   typedef derived< T... >
19           Derived;
20 };
21 
22 int main()
23 {
24   derived< a > instance;
25 }
26 
27