1// { dg-do assemble  }
2// GROUPS passed templates
3template <class T>
4class Base
5{
6public:
7    Base() { }
8};
9
10template <class memberType, class keyType>
11class Middle : public Base<memberType>
12{
13public:
14    Middle (keyType const & (*ko) (memberType const &))
15    {
16    }
17};
18
19// EXCHANGE the following lines for this code to work.
20//template <class memberType, class keyType> class Middle;
21template <class T, class keyType> class Middle;
22
23struct Test : public Middle <int, int>
24{
25    Test();
26};
27