1 // { dg-do assemble  }
2 // GROUPS passed templates
3 template <class T>
4 class Temp_Base
5 {};
6 
7 template <class T>
8 class Temp_Derived
9 : public Temp_Base<T>
10 {
11 public:
12   Temp_Derived (int i = 10) {}
13 };
14 
15 
16 class Base
17 {
18   float r_;
19 public:
Base(float r)20   Base (float r) : r_(r) {}
21 };
22 
23 class Derived
24 : public Base
25 {
26 private:
27   Temp_Base<int>*  boo_;
28 public:
29   Derived (float);
30 };
31 
32 Derived::
Derived(float form)33 Derived (float form)
34 : Base(form),
35   boo_(new Temp_Derived<int>)
36 {}
37