----- Original Message -----
From: "Hugo Duncan" <[EMAIL PROTECTED]>

> > At one point in the past, however, I wrote a mechanism explicitly for
> > including a set of files.  It was intended to "shorthand" the process of
> > including a lot of files from the same library.  Something like:
> >
> > #define BOOST_PP_HEADERS \
> >     (boost/preprocessor,
> > (tuple/elem.hpp)(repetition/repeat.hpp)(list/adt.hpp)) \
> >     /**/
> >
> > #include BOOST_PP_ANGLED_INCLUDE()
> >
> > (I had BOOST_PP_QUOTED_INCLUDE as well.)  I'd be happy to add such a
> > mechanism, but I'd like to hear what people want from the mechanism and
any
> > thoughts on syntactic issues, etc..
>
> BOOST_PP_xx_INCLUDE( directory, list_of_filenames_with_paths ) is
> good as long as directory can be empty, for the case where the filenames
have
> different paths.

BOOST_PP_xx_INCLUDE(directory, files) is impossible.  What you need is a
user-defined macro that contains the files that you want, and then include
another file that performs all the inclusion.  The mechanism that I had
handled the "no path" case by using parentheses.  For example, (I don't
remember the exact syntax that I had, so forgive me if it changes from post
to post.  The syntax is, of course, open for discussion.)

#define BOOST_PP_HEADERS \
    (...), /* i.e. "no path" */ \
    (iostream)(fstream)(vector)(string) \
    (map)(cstdlib)(sstream) \
    /**/

??=include BOOST_PP_ANGLED_INCLUDE()

...effectively does this:

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <map>
#include <cstdlib>
#include <sstream>

> The other problem that I have when using this is that it removes
> dependencies for the build process.  To solve this, the files can
> be preprocess.  Is there a standard toolset/method for preprocessing
> header files ?

I'm not sure what you mean here.  The arities, and possibly other things,
that the MPL can handle is directly dependent on certain macros.  If you
pre-preprocess the files, you effectively fix the arities to a certain size.
Also, you'd have to preprocess the files separately for each compiler that
you want to target.  Worse, you implicitly undefine all macros
used--including include guard macros.

You can simply make a source file that includes all the files that you want
to pre-preprocess (if that is what your getting at), run it through your
compiler's preprocessor, and then include the result file.

...but this is outside the scope of the pp-lib can automate because it
requires a separate build step to produce the preprocessor equivalent of a
"pre-compiled header."

Paul Mensonides

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to