The <bits/ranges_algobase.h> header doesn't need the stream and streambuf iterators, so don't include the whole of <iterator>.
libstdc++-v3/ChangeLog: PR libstdc++/92546 * include/bits/ranges_algobase.h: Replace <iterator> with a subset of the headers it includes. Tested powerpc64le-linux. Committed to trunk.
commit a1fc4075fcdf028f2e1dc00ce515a947127e2667 Author: Jonathan Wakely <jwak...@redhat.com> Date: Thu Apr 8 10:01:08 2021 libstdc++: Reduce header dependencies of <algorithm> in C++20 [PR 92546] The <bits/ranges_algobase.h> header doesn't need the stream and streambuf iterators, so don't include the whole of <iterator>. libstdc++-v3/ChangeLog: PR libstdc++/92546 * include/bits/ranges_algobase.h: Replace <iterator> with a subset of the headers it includes. diff --git a/libstdc++-v3/include/bits/ranges_algobase.h b/libstdc++-v3/include/bits/ranges_algobase.h index cfbac839749..c8c4d032983 100644 --- a/libstdc++-v3/include/bits/ranges_algobase.h +++ b/libstdc++-v3/include/bits/ranges_algobase.h @@ -33,7 +33,9 @@ #if __cplusplus > 201703L #include <compare> -#include <iterator> +#include <bits/stl_iterator_base_types.h> +#include <bits/stl_iterator_base_funcs.h> +#include <bits/stl_iterator.h> #include <bits/ranges_base.h> // ranges::begin, ranges::range etc. #include <bits/invoke.h> // __invoke #include <bits/cpp_type_traits.h> // __is_byte