2013/6/6 Simon <turner25@gmail.com>
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()'

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users