#pragma once namespace mapbox { namespace geometry { template struct point { using coordinate_type = T; constexpr point() : x(), y() { } constexpr point(T x_, T y_) : x(x_), y(y_) { } T x; T y; }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfloat-equal" template constexpr bool operator==(point const& lhs, point const& rhs) { return lhs.x == rhs.x && lhs.y == rhs.y; } #pragma GCC diagnostic pop template constexpr bool operator!=(point const& lhs, point const& rhs) { return !(lhs == rhs); } } // namespace geometry } // namespace mapbox