$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Hartmut Kaiser (hartmutkaiser_at_[hidden])
Date: 2003-12-17 11:28:23
Joel de Guzman wrote:
> Darren Cook wrote:
>
> > Joel de Guzman wrote:
> >
> >> Robert Ramey wrote:
> >>
> >>> Would it be possible that spirit 1.6 also be included in
> boost 1.31
> >>> perhaps under different directory/namespace ?
> >
> >
> > Hi Joel,
> > I didn't see you directly answer this: could boost/spirit and
> > boost/spirit.1.6 co-exist in boost 1.31?
>
> Possible? I wouldn't say no. However, there are lots of
> things that should be put into consideration. The first one
> that comes to my mind is namespace and directory structure. I
> do not think that putting
> 1.6.1 in a different namespace and directory is a good idea.
> That would hurt backward compatibility. v1.6 code should work
> as before.
>
> I'm sure there are other issues as well. However, I won't
> close my mind on the idea. If boost only had a *smart*
> configuration based download such that when your compiler is
> VC6, a copy of Spirit 1.6 is sent instead, it would be ideal.
>
> I'd like to hear what Hartmut, Dan, Martin, etc. think about
> this idea.
The only thing I could think of is to include both versions of Spirit into
boost and wrapping them with pp constants to ensure, that actually only one
version is tossed in:
Directory structure:
boost
spirit
spirit_1_6_x
... Version 1.6.x goes here
spirit
... Head version goes here
For _every_ Spirit header (spirit.hpp, spirit/core.hpp etc.) do something
like:
boost/spirit.hpp:
#if defined(BOOST_SPIRIT_USE_VERSION_1_6)
// this is the only header, which needs to be renamed
#include <boost/spirit/spirit_1_6_x.hpp>
#else
#include <boost/spirit/spirit.hpp>
#endif
boost/spirit/core.hpp
#if defined(BOOST_SPIRIT_USE_VERSION_1_6)
#include <boost/spirit/spirit_1_6_x/core.hpp>
#else
#include <boost/spirit/spirit/core.hpp>
#endif
The drawback is, that it would triple the file count!
Makes this any sense?
Regards Hartmut