1
我想用spirit x3将各种数字解析成一个字符串。我试图这样做,但它不起作用。用boost spirit x3解析一个数字到一个字符串
typedef x3::rule<class int_parser_id, std::string> int_parser_type;
const int_parser_type int_parser = "int_parser";
auto const int_parser_def = x3::int32;
我能做些什么来解析一个INT与x3 :: int32分析器到一个字符串?
只是说“它不起作用”并没有告诉我们任何可以帮助你的东西。请描述***如何“它不起作用”。你有构建错误吗?在运行时崩溃?错误的结果?越详细越好。如果出现构建错误,您应该将错误(全部和完整)*作为文本*未经编辑复制粘贴到问题的正文中。如果您收到意想不到的结果,请告诉我们您的输入以及实际的*和预期的*输出。如果发生崩溃,则在调试器中运行以查找崩溃。另请[请阅读如何提出好问题](http://stackoverflow.com/help/how-to-ask)。 –
@JoachimPileborg:在这种情况下,它不起作用,就像我的车不会游泳一样 - 图书馆不是这样的。但是,如果OP知道,他们不会首先问这个问题......; - ] – ildjarn
这个解析器应该将一系列数字解析为一个字符串: std :: string input =“1234”; std :: string out; x3 :: phrase_parse(input.begin(),input.end(),+ x3 :: digit,x3 :: space,out); assert(输出==输入); (意思是一个或多个数字,'digit'分析器的属性是'char',所以当你在前面加一个加号时,你会得到一个char或string的向量)。 – matiu