Boost logo

Proto :

Subject: Re: [proto] [phoenix] not playing nice with other libs
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2011-05-06 15:31:06


>> I agree. I don't think there really is a general solution to that.
>> There have been reports
>> by Micheal Caisse of some macro definition nightmare while using MSM
>> together with spirit.
>> If i remember the details correctly, MSM changes the proto constants as well.
>> This problem is not really phoenix specific!
>
> Oh, yeah. MSM changes Proto's max arity to be 7. OK, I can see that 5 is
> too low for folks. Proto needs some work.

I'd be careful with that. Frankly, I'm thinking since a while of
removing this define for 2 reasons:
- 7 is actually the worst possible case which I bet nobody ever met.
You need a reaaally complicated functor for this (the longest STL
algorithm as eUML functor).
- you might have noticed that 7 is only for VC. Why? Because a few
versions of gcc crash horribly with 7 (I think 4.4), so I stop at 6
for compilers I either don't know or I know will crash.

I'm wondering if it wouldn't be better to give more freedom to a user.
I didn't know about Michael's problem but I bet he'd find the correct
value by himself. If we let him overwrite all our values by providing
his own define, he would at least have a chance. Something like:
#ifdef BOOST_PROTO_USER_ARITY
// we all use this value

Not great but manageable.

Cheers,
Christophe


Proto list run by eric at boostpro.com