On Sun, Nov 28, 2010 at 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/phoenix/examp... 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.
I (svn) checked out revision 66827 and the problem is still there (?). I am using this server https://svn.boost.org/svn/boost/sandbox/SOC/2010/phoenix3/boost/phoenix is there another one where you uploaded the fixes?
The problematic code can be tested with for example this code:
// This is needed to generate the mpl code. #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS // define to something which is not the default: // (default is 5) #define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 10
#include
#include
I found that including MPL hpps before phoenix hpps allows to compile the example (not a real fix)