Hi, because I really dislike the hassle our (almost) flattened header files cause quite often, I have made a very simple experiment to find out how the header files really depend on each other. Some results, together with a dozen of short paragraphs of relevant text are here:
http://labs.suse.cz/mjambor/150417-headers_in_gcc/headers_in_gcc.html Short summary: I wrote a script removing an include at a time and parsing errors and recording such discovered "dependencies." The page has text-file reports showing what needs to be included before what, in which files and because of which error messages. I have also plotted a few graphs from these "dependencies." The pictures look interesting, I am not sure if they are in any way useful, but have a look and judge for yourself. Regardless of whether or not this experiment had any value. Do we plan to do un-flattening of header files in the course of the next release or two? The pain the flat header files is real and enduring it for much longer or indefinitely seems unhealthy to me. Thanks, Martin