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