template <class T>
class Vector {
  T t;
public:
  T &operator [](int i) { return t; }
};

template <class R>
class Point {
public:
  R x, y, z;
  R mod2() const { return x*x+y*y+z*z; }
};

template <class T, class R>
bool blend(Vector<T> &p, const R epsilon) {
  R m = p[0].mod2();
  return m < epsilon ? true : false;
}

int main() {
  Vector< Point<double> > u;
  return blend(u, 1E-6);
}