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