
On Nov 28, 4:12 am, Thomas Heller
alfC
writes:> Hi, I decided to try Phoenix3. I looked up at a couple of examples and since I use Boost.Units (which depends on Boost.MPL) heavily I tried to mix both only to find out that there is an obscure incompatibility between MPL and Phoenix3. The way to show this is just to compile the phoenix3/.../function.cpp example
https://svn.boost.org/svn/boost/sandbox/SOC/2010/phoenix3/libs/phoeni... unction.cpp
with the following added line:
#include
I get this error message:
In file included from function.cpp:12: /home/user/usr/include/boost/mpl/multiplies.hpp:38: error: wrong number of template arguments (7, should be 5) /home/user/usr/include/boost/mpl/aux_/preprocessed/gcc/times.hpp:68: error: provided for ‘template
struct boost::mpl::times’ Thanks for the report. I just commited a fix. The problem is with some macro definitions inside phoenix/core/limits.hpp. It is the macro documented here:http://www.boost.org/doc/libs/1_45_0/libs/mpl/doc/refmanual/limit-met... arity.html However, this fix might introduce new problems, whenever the PHOENIX_LIMIT constant is set too high. The problem lies deep within the use of the preprocessor in some mpl internal code. Further investigation is needed!
Indeed, it seems that this workaround introduce new problems, for example Boost.Accumulators produce errors: /home/user/usr/include/boost/accumulators/numeric/detail/ function_n.hpp:83: error: ‘apply10’ in namespace ‘boost::mpl’ does not name a type Thanks, Alfredo