In the spirit of "include what you use" (and because I couldn't find why <unordered_map> and <unordered_set> include <tuple> when they don't use it ... it's because <bits/hashtable_policy.h> uses it).
* include/bits/hashtable_policy.h: Include <tuple>. * include/std/unordered_map: Only include <bits/stl_pair.h> instead of <utility> and <tuple>. * include/std/unordered_set: Likewise. Tested powerpc64le-linux, committed to trunk.
commit 58390a166cfda1cb7db2ccc65c6515f3d48892ec Author: Jonathan Wakely <jwak...@redhat.com> Date: Mon Oct 30 14:40:51 2017 +0000 Minor header reorganization for unordered containers * include/bits/hashtable_policy.h: Include <tuple>. * include/std/unordered_map: Only include <bits/stl_pair.h> instead of <utility> and <tuple>. * include/std/unordered_set: Likewise. diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h index da6d49c96c4..e19f92abd76 100644 --- a/libstdc++-v3/include/bits/hashtable_policy.h +++ b/libstdc++-v3/include/bits/hashtable_policy.h @@ -31,7 +31,9 @@ #ifndef _HASHTABLE_POLICY_H #define _HASHTABLE_POLICY_H 1 -#include <bits/stl_algobase.h> // for std::min. +#include <tuple> // for std::tuple, std::forward_as_tuple +#include <cstdint> // for std::uint_fast64_t +#include <bits/stl_algobase.h> // for std::min. namespace std _GLIBCXX_VISIBILITY(default) { diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map index 2cdcd377936..80773235b65 100644 --- a/libstdc++-v3/include/std/unordered_map +++ b/libstdc++-v3/include/std/unordered_map @@ -35,13 +35,12 @@ # include <bits/c++0x_warning.h> #else -#include <utility> #include <type_traits> #include <initializer_list> -#include <tuple> #include <bits/allocator.h> #include <ext/alloc_traits.h> #include <ext/aligned_buffer.h> +#include <bits/stl_pair.h> #include <bits/stl_function.h> // equal_to, _Identity, _Select1st #include <bits/functional_hash.h> #include <bits/hashtable.h> diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set index 2646c0f2f00..faf7ebe23ae 100644 --- a/libstdc++-v3/include/std/unordered_set +++ b/libstdc++-v3/include/std/unordered_set @@ -35,13 +35,12 @@ # include <bits/c++0x_warning.h> #else -#include <utility> #include <type_traits> #include <initializer_list> -#include <tuple> #include <bits/allocator.h> #include <ext/alloc_traits.h> #include <ext/aligned_buffer.h> +#include <bits/stl_pair.h> #include <bits/stl_function.h> // equal_to, _Identity, _Select1st #include <bits/functional_hash.h> #include <bits/hashtable.h>