1 #pragma once
2 
3 namespace mapbox {
4 namespace geometry {
5 
6 template <typename T>
7 struct point
8 {
9     using coordinate_type = T;
10 
pointmapbox::geometry::point11     constexpr point()
12         : x(), y()
13     {}
pointmapbox::geometry::point14     constexpr point(T x_, T y_)
15         : x(x_), y(y_)
16     {}
17 
18     T x;
19     T y;
20 };
21 
22 template <typename T>
operator ==(point<T> const & lhs,point<T> const & rhs)23 constexpr bool operator==(point<T> const& lhs, point<T> const& rhs)
24 {
25     return lhs.x == rhs.x && lhs.y == rhs.y;
26 }
27 
28 template <typename T>
operator !=(point<T> const & lhs,point<T> const & rhs)29 constexpr bool operator!=(point<T> const& lhs, point<T> const& rhs)
30 {
31     return !(lhs == rhs);
32 }
33 
34 } // namespace geometry
35 } // namespace mapbox
36