$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] compilation problems on spirit::karma
From: Erik Thiele (erik.thiele_at_[hidden])
Date: 2012-09-20 10:02:27
Hello
in the attachment there is a single c++ file.
on debian squeeze with g++ (Debian 4.4.5-8) 4.4.5 it compiles. debian 
standard libboost1.42-dev is installed. if you run the program:
erik_at_ludwig:~/allesfresser/karma_problem$ ./a.out
ruleSetModal(subCall(projectMemberIdentifier(siemensAltNumber=100, 
fanucNumber=0, name=))
erik_at_ludwig:~/allesfresser/karma_problem$
that's the required behaviour.
now on new system with g++ (Debian 4.7.1-7) 4.7.1, and libboost1.49-dev, 
it does not compile. a short excerpt of the enormously long chain of 
error message:
problem.cpp:254:5:   required from 
âastGenerate<OutputIterator>::astGenerate() [with OutputIterator = 
std::back_insert_iterator<std::basic_string<char> >]â
problem.cpp:307:56:   required from here
/usr/include/boost/spirit/home/support/attributes.hpp:519:28: error: 
cannot convert âconst boost::variant<astProjectMemberIdentifier, 
astErikNcBohrPlanSenk>â to 
âboost::spirit::traits::attribute_size<boost::optional<boost::variant<astProjectMemberIdentifier, 
astErikNcBohrPlanSenk> >, void>::type {aka unsigned int}â in return
if you remove the rule in line 254 (ruleSetModal = "ruleSetModal(" << 
-ruleSubCall << ')';), then the program will compile. but it will output 
nothing of course. i need this line. it worked all the times and now 
after update it does not work.
honestly i do not understand the long chain of error message. i checked 
with boost 1_51_1 with the same not working result. also with clang++ 
compiler it does not work with the same error message. maybe someone on 
the list can enlighten me why this does not compile anymore.
Thanks
Erik