template <class It>
struct __is_cpp17_contiguous_iterator
Different libc++ versions use one of these class names to determine if an
iterator is contiguous. We define both so that this works regardless of the
libc++ version. We have to forward declare these types for the case that
the other is not already defined.