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