【发布时间】:2012-11-23 01:07:33
【问题描述】:
我正在尝试使用以下代码将字符串解析为 utree:
void Parse(const std::string& testString, const MyGrammar<const char*>& parser)
{
char const* first = testString.c_str();
char const* last = &first[testString.size()];
boost::spirit::utree tree;
boost::spirit::qi::parse(first,last,parser,tree);
std::cout << "tree: " << tree << '\n';
}
我的语法在哪里
namespace spirit = boost::spirit;
class MyGrammar : public spirit::qi::grammar<Iterator, spirit::utree(), spirit::qi::space_type>
{
...
}
但是编译失败并显示以下消息:
错误 1 错误 C2664: 'bool boost::function4::operator ()(T0,T1,T2,T3) const' : 无法将参数 4 从 'const boost::spirit::unused_type' 转换为 'const boost ::spirit::qi::char_class ' c:\program files\etas\etasadlib\boost\1.49.0\include\boost\spirit\home\qi\nonterminal\rule.hpp 303 MyGrammarTest
谁能帮帮我?
【问题讨论】:
标签: c++ boost-spirit boost-spirit-qi