> struct Point2D and struct Point3D can be merged into a single templated code, that can work with N coordinates, reducing code duplication... They could be but normally Point2D and Point3D have pretty specific operations that don't scale well. -Joel