compilation problems on spirit::karma
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@ludwig:~/allesfresser/karma_problem$ ./a.out ruleSetModal(subCall(projectMemberIdentifier(siemensAltNumber=100, fanucNumber=0, name=)) erik@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
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@ludwig:~/allesfresser/karma_problem$ ./a.out ruleSetModal(subCall(projectMemberIdentifier(siemensAltNumber=100, fanucNumber=0, name=)) erik@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<astP rojectMemberIdentifier, 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.
I'll have a look over the weekend. Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu
Hello, Am 20.09.2012 16:44, schrieb Hartmut Kaiser:
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@ludwig:~/allesfresser/karma_problem$ ./a.out ruleSetModal(subCall(projectMemberIdentifier(siemensAltNumber=100, fanucNumber=0, name=)) erik@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<astP rojectMemberIdentifier, 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.
I'll have a look over the weekend.
Can you reproduce the problem? Please ask if you need more information. thanks erik
participants (2)
-
Erik Thiele
-
Hartmut Kaiser