// Point-Extent pattern for binary arithmetic operators PointClass& operator+=(const Class rs); PointClass& operator-=(const Class rs); PointClass operator+ (const Class rs) const {return PointClass(*this)+=rs;} PointClass operator- (const Class rs) const {return PointClass(*this)-=rs;} Class operator- (const PointClass rs) const {return Class(value-rs.value);} friend PointClass operator+ (const Class ls, const PointClass rs) {return PointClass(rs)+=ls;}