1// { dg-do assemble } 2// Origin: Alex Samuel <samuel@codesourcery.com> 3 4namespace NS 5{ 6 7template <class T, int V> 8struct Base 9{ 10}; 11 12template <class T> 13struct Z 14{ 15 const static int value_ = false; 16}; 17 18struct Outer 19{ 20 template <class T> 21 struct A : 22 public Base <T, Z<T>::value_> 23 { 24 }; 25}; 26 27template <class T> 28void f(T) 29{ 30} 31 32} 33 34 35template <template <class T> class U> 36struct B 37{ 38}; 39 40 41int 42main () 43{ 44 B<NS::Outer::A> ba; 45 f (ba); // Koenig lookup 46 return 0; 47} 48 49