On Wed, May 4, 2011 at 10:58 AM, Eric Niebler <e...@boostpro.com> wrote:
> (cross-posting to the Proto list and cc'ing Hartmut.)
>
> On 5/2/2011 6:18 PM, Thomas Heller wrote:
>> On Mon, May 2, 2011 at 12:54 PM, Eric Niebler <eric.nieb...@gmail.com> 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.
>>
>> Let me sketch why i changed these constants:
>> 1) Phoenix V2 has a composite limit of 10:
>>    This is equivalent to the number of child expressions a expression can 
>> hold.
>>    This is controlled by BOOST_PROTO_MAX_ARITY for the number of
>>    template arguments for proto::expr and proto::basic_expr
>> 2) Boost.Bind can take up to 10 parameters in the call to boost::bind
>
> It's still not clear to me why you're changing
> BOOST_MPL_LIMIT_METAFUNCTION_ARITY and BOOST_PROTO_MAX_LOGICAL_ARITY.

BOOST_MPL_LIMIT_METAFUNCTION_ARITY:
./boost/proto/matches.hpp:56:8: error: #error
BOOST_MPL_LIMIT_METAFUNCTION_ARITY must be at least as large as
BOOST_PROTO_MAX_ARITY

and
BOOST_PROTO_MAX_LOGICAL_ARITY:
./boost/proto/proto_fwd.hpp:326: error: provided for ‘template<class
G0, class G1, class G2, class G3, class G4, class G5, class G6, class
G7> struct boost::proto::and_’

But i guess this can be fixed by simply splitting the call to proto::and_ ....
_______________________________________________
proto mailing list
proto@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/proto

Reply via email to