$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [phoenix] not playing nice with other libs
From: Cromwell Enage (sponage_at_[hidden])
Date: 2011-05-02 15:17:11
--- On Mon, 5/2/11, Thomas Heller wrote:
> On Mon, May 2, 2011 at 12:54 PM, Eric Niebler wrote:
> > Phoenix is changing the following fundamental constants:
> >
> > BOOST_PROTO_MAX_ARITY
> > BOOST_MPL_LIMIT_METAFUNCTION_ARITY
> > BOOST_PROTO_MAX_LOGICAL_ARITY
> > BOOST_RESULT_OF_NUM_ARGS
> >
> > IMO, Phoenix shouldn't be touching these. It should
> > work as best it can with the default values. Users who
> > are so inclined can change them.
>
> Eric,
> This problem is well known. As of now I have no clue how
> to fix it properly.
What I usually do instead of changing the values of existing constants is to start each header file with, for each fundamental constant used, what I'll dub a "constant guard":
#if BOOST_PP_LESS(BOOST_PROTO_MAX_ARITY, SOME_MINIMUM_VALUE)
#error Please set BOOST_PROTO_MAX_ARITY to SOME_MINIMUM_VALUE or higher
#endif
IOW, I'm just passing the buck to the library user or to the application developer.
HTH,
Cromwell D. Enage