// PRMS Id: 1502
// Bug: g++ fails to resolve 'gnc' in the call to 'grid'.

template<class T> class foo { 
public:
  foo() { } 
};

template<class T> class bar : public foo<T> {
public:
  bar() : foo<T>() {}
};

template<class T> class ben : public foo<T> {
public:
  ben() : foo<T>() {}
  void grid(T (*f)(bar<T>&),bar<T>& x,bar<T>& y,bar<T>& param);
};

template<class T> void ben<T>::grid(T (*f)(bar<T>&),bar<T>& x,bar<T>& y,bar<T>& param) { }

template<class T> T gnc(bar<T>& a)
{
  return 0;
}

int main()
{
  ben<double> a;
  bar<double> x,y,p;
  a.grid(gnc,x,y,p);
  return 0;
}
