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