Boost logo

Boost :

From: Hugo Duncan (hugoduncan_at_[hidden])
Date: 2003-01-29 15:23:30


On Mon, 27 Jan 2003 12:42:14 -0800, "Paul Mensonides" <pmenso57_at_[hidden]> wrote:

> #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>

Looks good to me.
 
> > 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.

I would like to take a file that uses BOOST_PP_HEADERS, say

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

and preprocess it to generate the file that says

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

> 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.

I don't think bjam supports just running the preprocessor, but as you say
the poblem is more tricky; I would like to stop preprocessing at a certain
include depth.
 
> ....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."

I didn't mean to imply it was within scope. I know MPL does preprocessing
using python, but I don't know how reuseable that code is, so I was
just hunting for tips, suggestions and pointers.

Thanks for your help. Look forward to seeing BOOST_PP_INCLUDE when you have time.

Hugo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk