Robert Heller <[EMAIL PROTECTED]> writes: > The 'g++' program is just a wrapper. It calls the > preprocessor on gcc_bug.cpp, yielding /tmp/<mumble>.i,
Actually, no current C++ compiler I know of has a separate preprocessor. They all use integrated preprocessors, which means that the <mumble>.i is never produced. There is no reason (other then separation of concerns / ease of maintenance) for other pieces to be separate either; and indeed IBM's VisualAge compilers integrated everything. There are advantages to such integration: - Inter-procedure optimization becomes possible across compilation units (the compiler keeps a database of "known program elements", and can e.g. tell that bug::meth1() does not modify caller-saved register X, therefore this register need not be saved). - Partial recompilation becomes possible: if you modified the body of inlined function foo(), only the functions that call foo() must be recompiled. - etc, etc. All of this is of course extremely non-portable; I don't know whether anybody takes advantage of the advanced VisualAge features. Cheers, -- In order to understand recursion you must first understand recursion. Remove /-nsp/ for email. _______________________________________________ Help-gplusplus mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gplusplus
