While it is possible to use three way comparison for iterators coming from e.g. std::array, this does not work for e.g. std::vector. The culprit appears to be that oeprator<=> is not defined for the iterator wrapper used in the latter. https://godbolt.org/z/fMdYvvz5Y