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