1 // { dg-do run } 2 3 // Copyright (C) 2003 Free Software Foundation, Inc. 4 // Contributed by Nathan Sidwell 22 Jul 2003 <nathan@codesourcery.com> 5 6 // PR 9447. Using decls in template classes. 7 8 template <class T> 9 struct Foo { iFoo10 int i (int) {return 1;} 11 }; 12 13 struct Baz 14 { kBaz15 int k (int) {return 2;} 16 }; 17 18 template <class T> 19 struct Bar : public Foo<T> , Baz { 20 using Foo<T>::i; 21 using Baz::k; 22 iBar23 int i (float) {return 3;} kBar24 int k (float) {return 3;} 25 fooBar26 int foo() 27 { 28 if (i (1) != 1) 29 return 1; 30 if (k (1) != 2) 31 return 2; 32 33 return 0; 34 } 35 }; 36 main()37int main() 38 { 39 Bar<int> bar; 40 41 return bar.foo(); 42 } 43