struct UnknownUnits {}; typedef float Float; template struct PointTyped { F x; F y; static PointTyped FromUnknownPoint(const PointTyped& aPoint) { return PointTyped(aPoint.x, aPoint.y); } PointTyped ToUnknownPoint() const { return PointTyped(this->x, this->y); } }; typedef PointTyped IntPoint;