Boost logo

Boost :

From: gideon may (gideon_at_[hidden])
Date: 2002-06-16 08:08:51


Hello,

I have problems compiling the latest cvs version of boost with microsoft
version 6 and 7 on win2k.

It seems that the macro expansion of 'union lower_alignment' and
'union max_align' in alignment_traits.cpp is broken.
When I run it through the preprocessor, using the default boost build I get
the following :

union lower_alignment
{
 BOOST_PP_IFBOOST_PP_BOOLBOOST_PP_TUPLE16_ELEM(BOOST_PP_TUPLE2_EAT,BOOST_PP_
LIST_FOR_EACH_I_M)(1,(BOOST_TT_CHOOSE_LOWER_ALIGNMENT,ignored,(char,(short,
(int,(long,(float,(double,(long
double,(void*,(function_ptr,(member_ptr,(member_function_ptr,(_,_,0),1),1),
1),1),1),1),1),1),1),1),1),0))
BOOST_PP_IFBOOST_PP_BOOLBOOST_PP_TUPLE16_ELEM(BOOST_PP_TUPLE4_EAT,BOOST_PP_
FOR1)((BOOST_PP_TUPLE16_ELEM,BOOST_PP_TUPLE16_ELEM,BOOST_PP_TUPLE16_ELEM,BO
OST_PP_INCBOOST_PP_TUPLE16_ELEM),BOOST_PP_LIST_FOR_EACH_I_P,BOOST_PP_LIST_F
OR_EACH_I_O,BOOST_PP_LIST_FOR_EACH_I_M)
};

union max_align
{
 BOOST_PP_IFBOOST_PP_BOOLBOOST_PP_TUPLE16_ELEM(BOOST_PP_TUPLE2_EAT,BOOST_PP_
LIST_FOR_EACH_I_M)(1,(BOOST_TT_CHOOSE_T,ignored,(char,(short,(int,(long,(fl
oat,(double,(long
double,(void*,(function_ptr,(member_ptr,(member_function_ptr,(_,_,0),1),1),
1),1),1),1),1),1),1),1),1),0))
BOOST_PP_IFBOOST_PP_BOOLBOOST_PP_TUPLE16_ELEM(BOOST_PP_TUPLE4_EAT,BOOST_PP_
FOR1)((BOOST_PP_TUPLE16_ELEM,BOOST_PP_TUPLE16_ELEM,BOOST_PP_TUPLE16_ELEM,BO
OST_PP_INCBOOST_PP_TUPLE16_ELEM),BOOST_PP_LIST_FOR_EACH_I_P,BOOST_PP_LIST_F
OR_EACH_I_O,BOOST_PP_LIST_FOR_EACH_I_M)
};

The same macro expansion error occurs with the compilation of boost.python.

Can anyone shed a light on this problem ?

My compiler environment is set by the following :

call %VSCOMNTOOLS%vsvars32.bat
subst w: "C:\Program Files\Microsoft Visual Studio .NET"
set VISUALC="W:\VC7"
set VC7_ROOT="W:\VC7"
set TOOLS=vc7

ciao,

gideon


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk