There are some cases where a few WTF headers that use tuple without including <tuple> (HashFunctions.h, PrintStream.h, Signals.h) can cause compilation failures on toolchains where tuple isn't being already defined (for example via include from another previously included STL header) and don't delay templates like MSVC. For Signals.h, it appears that the only place in Signals.cpp the additional <tuple> include would work in break the header include order (it would have to be before the include of Signals.h itself). For PrintStream.h, it might be possible to find another location, although the first specific error we see is in SlotVisitor.cpp and adding in the accepted header include position in either that file or SlotVisitor.h did not fix the error. For HashFunctions (or at least HashTraits that uses it), there appeared to be failures in WTF, LLIntOffsetsExtractor, and JavaScriptCore and test* apps for failures to find make_tuple via paths including it from heap/Weak.h and text/CString.h across at least 5 of the JSC unified sources.
Created attachment 327423 [details] Add tuple includes to WTF headers.
This was brought up at the contributors meeting so hopefully we can land this. STL makes no guarantees that any one header includes another header within the STL so that's one reason we believe that other platforms are not having these problems.
Adding Alex as he had commented on https://bugs.webkit.org/show_bug.cgi?id=169769
*** Bug 169769 has been marked as a duplicate of this bug. ***
Comment on attachment 327423 [details] Add tuple includes to WTF headers. Clearing flags on attachment: 327423 Committed r225096: <https://trac.webkit.org/changeset/225096>
All reviewed patches have been landed. Closing bug.
<rdar://problem/35668618>