https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110512
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- Actually, if we don't care about upstream any more, we can improve the pre-C++20 version too: template <typename... _IteratorTypes> using __are_random_access_iterators = std::__or_<std::is_base_of<std::random_access_iterator_tag, std::__iter_category_t<_IteratorTypes>>...>;