concept PointNDConcept<typename T> : Regular<T> {
template <size_t K> struct axis; where Metafunction<axis>;
const size_t num_dimensions;
template <size_t K> const typename axis<K>::type& T::axis_value() const;
template <size_t K> typename axis<K>::type& T::axis_value();
};