https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92546
--- Comment #21 from Jonathan Wakely <redi at gcc dot gnu.org> --- This seems to work: diff --git a/libstdc++-v3/include/pstl/glue_algorithm_defs.h b/libstdc++-v3/include/pstl/glue_algorithm_defs.h index 48bc56ae401..cef78e22e31 100644 --- a/libstdc++-v3/include/pstl/glue_algorithm_defs.h +++ b/libstdc++-v3/include/pstl/glue_algorithm_defs.h @@ -10,7 +10,7 @@ #ifndef _PSTL_GLUE_ALGORITHM_DEFS_H #define _PSTL_GLUE_ALGORITHM_DEFS_H -#include <functional> +#include <bits/stl_pair.h> #include "execution_defs.h" diff --git a/libstdc++-v3/include/pstl/utils.h b/libstdc++-v3/include/pstl/utils.h index 1711f292678..69d78c3ca0f 100644 --- a/libstdc++-v3/include/pstl/utils.h +++ b/libstdc++-v3/include/pstl/utils.h @@ -10,8 +10,9 @@ #ifndef _PSTL_UTILS_H #define _PSTL_UTILS_H +#include <exception> #include <new> -#include <iterator> +#include <type_traits> namespace __pstl { The <pstl/utils.h> header only requires declarations of std::bad_alloc and std::terminate(), but includes <exception> and <new> to get them. That could be reduced with some minor surgery.