https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66338
--- Comment #12 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- (In reply to Ville Voutilainen from comment #11) > I don't see how any of that code or the failure is in any way related to > std::tuple... This was the wrong error message. The bootstrap problem triggered by your patch has probably been fixed already. This was the message from your patch: In file included from /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/functional:55:0, from /home/andreas/gcc/libstdc++-v3/include/precompiled/stdc++.h:71: /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:632:27: error: 'Elements' was not declared in this scope && !is_same<tuple<Elements...>, ^~~~~~~~ /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:632:35: error: expected parameter pack before '...' && !is_same<tuple<Elements...>, ^~~ /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:632:38: error: template argument 1 is invalid && !is_same<tuple<Elements...>, ^ /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:633:26: error: template argument 1 is invalid tuple<_UElements...>>::value, ^~ /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:634:35: error: template argument 1 is invalid _Elements...>; ^ /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:669:19: error: '_TMCT' was not declared in this scope enable_if<_TMCT<_UElements...>::template ^~~~~ /home/andreas/patched/gcc-7.0.0-31-30052016-build/s390-ibm-linux-gnu/libstdc++-v3/include/tuple:669:35: error: expected parameter pack before '...' ....