// Build don't run:

template<class T>
class foo {
  T deft;

  template<class U> int priv (U u, T t) { return u - t; }
public:
  foo (T t) : deft (t) {}

  template<class U> int pub (U u) {
    int (foo::*fn) (U, T);
    fn = &foo<T>::template priv<U>;
    return (this->*fn) (u, deft);
  }
};

int
main ()
{
  foo<long> fff (5);
  return fff.pub (3);
}
