template <typename Obj,unsigned int SIZE>
Obj tlp::geo::Array<Obj,SIZE>::operator[](const unsigned int i) const {
  assert(i<SIZE);
  return array[i];
}
template <typename Obj,unsigned int SIZE>
Obj& tlp::geo::Array<Obj,SIZE>::operator[](const unsigned int i) {
  assert(i<SIZE);
  return array[i];
}

template <typename Obj,unsigned int SIZE>
std::ostream& tlp::geo::operator<<(std::ostream &os,const tlp::geo::Array<Obj,SIZE> &a) {
  os << "(" ;
  os << a[0];
  for (unsigned int i=1;i<SIZE;++i)
    os << "," <<  a[i];
  os << ")" ;
  return os;
}
