
On 2/23/2012 8:33 PM, Edward Diener wrote:
On 2/23/2012 4:52 AM, Mathias Gaunard wrote:
On 02/22/2012 09:28 AM, Thomas Heller wrote:
What you are suggesting effectively sounds like throwing all kinds of structure and file organization away that makes sense for us mere humans just to compile a little faster. Please, back it up with some proof. Additionally, i would like to add that a fine grained header file organization also leads to less includes. One might always need everything defined in the library in one TU. I claim that having those big headers is slowing the process down.
Detecting the compiler is a global process, and requires knowledge about all the other compilers.
In particular, order in which compilers are detected matters so that Clang is not detected as GCC.
So it makes sense to only have one header for all compilers; all other approaches are likely to be dangerous or broken.
Having one header per compiler doesn't make sense. It should never be allowed to include just one compiler header.
The current Boost.Config has one header per compiler so obviously it does make sense. Another header attempts to figure out the compiler being used and then the particular compiler's header is included. What is so arcane about that ?
I think the objection with the way Predef does it is that in order to have all the negative definitions (#define XYZ 0) all the headers for a particular category need to be included. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail