Boost logo

Boost Users :

Subject: Re: [Boost-users] spirit and property_tree headers conflict
From: Artem Kozlov (akz328_at_[hidden])
Date: 2010-05-30 17:12:35


>
> On Thu, 27 May 2010 11:11:31 -0700 (PDT), Artem Kozlov<akz328_at_[hidden]>
> wrote:
>> Hello,
>>
>> When attempting to compile a program which includes the following
> headers
>> (at once):
>>
>> #include<boost/property_tree/json_parser.hpp>
>> #include<boost/spirit/include/qi.hpp>
>
> I suspect this is because the JSON parser is implemented in
> Spirit.Classic. I eventually want to switch to Qi, but until then, I have
> no idea what to do. I thought Classic and Qi can coexist, but maybe I'm
> doing something wrong.

> It should co-exist. What are the problems, exactly?

Well, here is the bunch of errors that I see during compilation:

/usr/include/boost/spirit/home/classic/attribute/closure_fwd.hpp:33: error: expected type-specifier
/usr/include/boost/spirit/home/classic/attribute/closure_fwd.hpp:33: error: expected '>'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:68: error: 'tuple_element' in namespace 'boost::phoenix' does not name a type
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:68: error: expected unqualified-id before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:88: error: invalid use of '::'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:88: error: expected ';' before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp: In constructor 'boost::spirit::classic::closure_context<ClosureT>::closure_context(const ClosureT&)':
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:75: error: class 'boost::spirit::classic::closure_context<ClosureT>' does not have any field named 'frame'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp: In member function 'ResultT& boost::spirit::classic::closure_context<ClosureT>::post_parse(ResultT&, const ParserT&, const ScannerT&)':
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:84: error: 'frame' was not declared in this scope
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:84: error: 'tuple_index' is not a member of 'boost::phoenix'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:84: error: expected primary-expression before ')' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp: At global scope:
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:128: error: invalid use of '::'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:128: error: expected ';' before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp: In constructor 'boost::spirit::classic::init_closure_context<ClosureT>::init_closure_context(const ClosureT&)':
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:115: error: class 'boost::spirit::classic::init_closure_context<ClosureT>' does not have any field named 'frame'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:115: error: 'convert_actors' is not a member of 'boost::phoenix'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:115: error: expected primary-expression before '>' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp: In member function 'ResultT& boost::spirit::classic::init_closure_context<ClosureT>::post_parse(ResultT&, const ParserT&, const ScannerT&)':
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:124: error: 'frame' was not declared in this scope
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:124: error: 'tuple_index' is not a member of 'boost::phoenix'
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:124: error: expected primary-expression before ')' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp: At global scope:
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:144: error: 'tuple_element' in namespace 'boost::phoenix' does not name a type
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:144: error: expected unqualified-id before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:149: error: 'attr_t' was not declared in this scope
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:149: error: template argument 2 is invalid
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:212: error: redeclared with 13 template parameter(s)
/usr/include/boost/spirit/home/classic/attribute/closure_fwd.hpp:62: note: previous declaration 'template<class DerivedT, class T0> struct boost::spirit::classic::closure' used 2 template parameter(s)
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:213: error: expected template-name before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1009: error: 'actor_result' in namespace 'boost::phoenix' does not name a type
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1009: error: expected unqualified-id before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1017: error: 'actor_result' in namespace 'boost::phoenix' does not name a type
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1017: error: expected unqualified-id before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1032: error: 'actor_result' in namespace 'boost::phoenix' does not name a type
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1032: error: expected unqualified-id before '<' token
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1040: error: 'actor_result' in namespace 'boost::phoenix' does not name a type
/usr/include/boost/spirit/home/classic/attribute/closure.hpp:1040: error: expected unqualified-id before '<' token

Regards,
Artem

      


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net