// Build don't link: 
// GROUPS passed templates
template <class T>
class Temp_Base
{};

template <class T>
class Temp_Derived
: public Temp_Base<T>
{
public:
  Temp_Derived (int i = 10) {}
};


class Base
{
  float r_;
public:
  Base (float r) : r_(r) {}
};

class Derived
: public Base
{
private:
  Temp_Base<int>*  boo_;	   
public:
  Derived (float);
};

Derived::
Derived (float form)
: Base(form),
  boo_(new Temp_Derived<int>)
{}
