message: Add required aliases for iterator_traits in ArrayIteratorBase
diff: @@ -30,13 +30,21 @@ private:
  constexpr static bool FromArrayView =
  !std::is_const<typename ArrayType::RealConstT>::value;
  +public:
  + // Iterator traits required to satisfy LegacyRandomAccessIterator concept
  + // before C++20
  + // See: https://en.cppreference.com/w/cpp/iterator/iterator_traits
  + using difference_type = IndexType;
  + using value_type = typename std::remove_cv<ValueType>::type;
  + using reference = ValueType&;
  + using pointer = ValueType*;
  + using iterator_category = std::random_access_iterator_tag;
  +
  public:
  using ArrayPointerType =
  typename std::conditional<ReturnConstRef || FromArrayView,
  const ArrayType*,
  ArrayType*>::type;
  - // FIXME: Define the iterator_traits types (or possibly in IteratorBase)
  - // https://en.cppreference.com/w/cpp/iterator/iterator_traits
  ArrayIteratorBase(IndexType pos, ArrayPointerType arr)
  : IteratorBase<ArrayIteratorBase<ArrayType, ValueType>, IndexType>(pos)
  