错误包括boost / spirit / include / qi.hpp

时间:2015-09-21 00:20:48

标签: c++11 boost g++ boost-spirit

我遇到与here相同的错误。请参阅'编译信息'在底部的长错误消息。基本上如果我#include< boost / spirit / include / qi.hpp>我无法编译。完全被这一个难倒......我正在使用C ++ 11在Debian上编译g ++ 4.9.3。作为参考,错误消息的第一部分是:

In file included from /usr/include/boost/spirit/home/qi/nonterminal/rule.hpp:35:0,
             from /usr/include/boost/spirit/home/qi/nonterminal.hpp:14,
             from /usr/include/boost/spirit/home/qi.hpp:20,
             from /usr/include/boost/spirit/include/qi.hpp:16,
             from prog.cpp:9:
/usr/include/boost/spirit/home/qi/reference.hpp: In instantiation of 'bool boost::spirit::qi::reference<Subject>::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::basic_string<char>&, boost::fusion::nil_>, boost::spirit::locals<> >; Skipper = boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >; Attribute = std::basic_string<char>; Subject = const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >, std::basic_string<char>(), boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >, 0l>, boost::spirit::unused_type, boost::spirit::unused_type>]':

我的代码实际上与上面的例子略有不同:

My::Dictionary Parser::parse( const char * s ) {
  std::string input(s);     // input to parse
  qi_my_protocol grammar;   // create instance of parser
  My::Dictionary msg;      // map to receive results
  bool result = qi::phrase_parse(
    input.begin(),
    input.end(),
    grammar,
    qi::space,
    msg
  ); // returns true if successful
  return msg;
}

0 个答案:

没有答案