|
Boost Users : |
Subject: Re: [Boost-users] [spirit] Compile error when using qi::locals<>
From: TONGARI (tongari95_at_[hidden])
Date: 2013-06-05 22:46:57
2013/6/6 Simon <turner25_at_[hidden]>
> Hi there,
> I'm pretty new to spirit and I need a semantic action to construct an
> object (that's fine) using a vector<double>, the vector is the problem.
> I'd really appreciate help with this error, or perhaps I'm not using the
> right technique, in which case, I'd need suggestions on how to proceed.
>
> Even if I don't use it anywhere, just adding the following to my grammar
> base class template parameter and adding the same to the rule declaration I
> need it for, it gives the monster error below.
>
> boost::spirit::qi::locals<std::vector<hs::Language::AX*> >
>
> I've also tried to make the vector a pointer, and allocate it on the
> first semantic action of a sequence.
>
> I've searched for an answer but found only one remote reference to boost
> needing to be recompiled to use c++11 features. So I did, but it didn't
> change anything (I use boost-1.49.0-r2).
>
> Also, I'm not sure if that is right, but my gcc command has this
> parameter: -std=c++0x
>
>
> I've put the full compile output at this address:
> http://next.n32.ca/locals.error.txt
> I will forget it there, so it should still be available in a few
> weeks/months... ;)
>
> And here are a few extracts of just the error lines:
>
> /usr/include/boost/spirit/home/qi/nonterminal/grammar.hpp:75:13: error: no
> matching function for call to 'assertion_failed(mpl_::failed************
> (boost::spirit::qi::grammar<Iterator, T1, T2, T3, T4>::grammar(const
> boost::spirit::qi::rule<Iterator_, T1_, T2_, T3_, T4_>&, const string&)
> [with Iterator_ = __gnu_cxx::__normal_iterator<const char*,
> std::basic_string<char> >, T1_ = hs::Language::AX*(), T2_ =
> boost::spirit::unused_type, T3_ = boost::spirit::unused_type, T4_ =
> boost::spirit::unused_type, Iterator = __gnu_cxx::__normal_iterator<const
> char*, std::basic_string<char> >, T1 = hs::Language::AX*(), T2 =
> boost::spirit::locals<std::vector<hs::Language::AX*>*>, T3 =
> boost::spirit::unused_type, T4 = boost::spirit::unused_type, std::string =
> std::basic_string<char>]::incompatible_start_rule::************)(boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const
> char*, std::basic_string<char> >, hs::Language::AX*(),
> boost::spirit::unused_type, boost::spirit::unused_type,
> boost::spirit::unused_type>))'
>
>
> /usr/include/boost/proto/extends.hpp:537:29: error: use of deleted
> function 'boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
> boost::proto::argsns_::term<boost::spirit::qi::reference<const
> boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const char*,
> std::basic_string<char> >, hs::Language::AX*(),
> boost::spirit::locals<std::vector<hs::Language::AX*>*>,
> boost::spirit::unused_type, boost::spirit::unused_type> > >, 0l>::expr()'
>
> /usr/include/boost/proto/detail/preprocessed/expr_variadic.hpp:37:12:
> error: 'boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
> boost::proto::argsns_::term<boost::spirit::qi::reference<const
> boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const char*,
> std::basic_string<char> >, hs::Language::AX*(),
> boost::spirit::locals<std::vector<hs::Language::AX*>*>,
> boost::spirit::unused_type, boost::spirit::unused_type> > >, 0l>::expr()'
> is implicitly deleted because the default definition would be ill-formed:
> /usr/include/boost/proto/detail/preprocessed/expr_variadic.hpp:37:12:
> error: no matching function for call to 'boost::spirit::qi::reference<const
> boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const char*,
> std::basic_string<char> >, hs::Language::AX*(),
> boost::spirit::locals<std::vector<hs::Language::AX*>*>,
> boost::spirit::unused_type, boost::spirit::unused_type> >::reference()'
>
According to the error message, I guess you use qi::locals in
yourstart-rule but not the grammar itself, the template params for
start-rule and grammar should always be the same.
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