Concept Subspace :: sus :: iter :: IntoIteratorAny

template <class T>
concept IntoIteratorAny
requires
requires(std::remove_cvref_t<T> t) {
  {
    ::sus::move(t).into_iter()
  } -> Iterator<
      typename std::decay_t<decltype(::sus::move(t).into_iter())>::Item>;
}

Conversion into an Iterator over any type of values.

Like IntoIterator but is only satisfied for an iterator over any type of item, without needing to know the Item apriori.

This is useful to work around the limits of type deduction in templates, along with IntoIteratorOutputType to extract the Item being iterated over in the resulting iterator.