1 // PR c++/70141
2 
3 template <typename T>
4 struct outer
5 {
6   template <typename U>
7   struct inner
8   {
9 
10   };
11 };
12 
13 
14 template <typename T>
15 struct is_inner_for
16 {
17   template <typename Whatever>
18   struct predicate;
19 
20   template <typename U>
21   struct predicate<typename outer<T>::template inner<U> >
22   {
23   };
24 };
25 
26 is_inner_for<int>::predicate<outer<int>::inner<double> > p;
27