3rdParty/boost/1.78.0/libs/gil/doc/html/design/point.html
A point defines the location of a pixel inside an image. It can also be used to describe the dimensions of an image. In most general terms, points are N-dimensional and model the following concept:
conceptPointNDConcept\<typenameT\>:Regular\<T\>{// the type of a coordinate along each axistemplate\<size\_tK\>structaxis;whereMetafunction\<axis\>;constsize\_tnum\_dimensions;// accessor/modifier of the value of each axis.template\<size\_tK\>consttypenameaxis\<K\>::type&T::axis\_value()const;template\<size\_tK\>typenameaxis\<K\>::type&T::axis\_value();};
GIL uses a two-dimensional point, which is a refinement of PointNDConcept in which both dimensions are of the same type:
conceptPoint2DConcept\<typenameT\>:PointNDConcept\<T\>{wherenum\_dimensions==2;whereSameType\<axis\<0\>::type,axis\<1\>::type\>;typenamevalue\_type=axis\<0\>::type;constvalue\_type&operator[](constT&,size\_ti);value\_type&operator[](T&,size\_ti);value\_typex,y;};
See also
GIL provides a model of Point2DConcept, point<T> where T is the coordinate type.