<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font face="Tahoma"><br>
      Some compilers can pull header-parse-caching tricks, but in order
      for that to work nicely<br>
      - all compilation modules need to import other files in the same
      order<br>
      - the list of macro definitions and other parameters passed into
      the compiler must be the same for all the compilation modules<br>
    </font><br>
    Michael Meeks wrote:
    <blockquote cite="mid:1317113725.12229.188.camel@lenovo-w500"
      type="cite">
      <pre wrap="">Hi guys,

        I'm still a tad annoyed by our compile times, and was wondering - has a
footypes.hxx header approach been tried in the past. This would add a
near complete set of forward declarations of classes, templates, etc.
necessary to use that library.

        I suspect (at the moment) that people tend to simply include the header
that creates whatever definition they care about in their headers
chaining them together into bulky masses of pulled in headers, rather
than whacking things like:

namespace com { namespace sun { namespace star { namespace uno {
        class Any;
        class Exception;
        template&lt; typename &gt; class Reference;
        template&lt; typename &gt; class Sequence;
        class XInterface;
} } } }
namespace rtl { class OUString; }

        into their headers to cut such chains (and who can blame them - that
seems much more readable). Though of course the base Reference class is
prolly something that we should have ~everywhere - with fwd. decls for
the interface classes themselves.

        Potentially, by switching to lazily including just the svxtypes.hxx (or
whatever) header ~everywhere, we could have a smaller, quicker to parse
code-base (pwrt. no in-lines that get actually compiled) as well as a
rather more bearable dependency tree.

        Did anyone research this sort of thing in the past ?

        Thanks,

                Michael.

</pre>
    </blockquote>
  <br><br><br><hr><font size="-2" color=808080>Disclaimer: <a href="http://www.peralex.com/disclaimer.html">http://www.peralex.com/disclaimer.html</a><br><br>

</body>
</html>