template <typename P>
concept Point2DConcept : PointNDConcept<P> {
where num_dimensions==2;
where axis<0>::coord_type == axis<1>::coord_type;
typename value_type = axis<0>::coord_type;
const value_type& operator[](size_t i) const;
value_type& operator[](size_t i);
value_type x,y;
};