3
比方说,我必须定义为像一个语法:使用boost :: spirit解析时,我该如何假设一个“默认值”?
some_rule := a b [c [d]]
其中c
,并d
是可选的,默认为一定值(比方说14)如果不给。如果没有给出该值,我可以将它默认为14吗?我想制作std::vector
永远是大小的4
我来最接近的是这样的:
qi::rule<Iterator, std::vector<int>(), ascii::space_type> some_rule;
some_rule %= int_ >> int_ >> -int_ >> -int_;
// ...
some_other_rule = some_rule[&some_callback_for_int_vectors];
这将进而得到0未露面的可选值(我相信)。然后,我在末尾将连续的0更改为14.这不仅是错误的,而且还不够优雅。有一个更好的方法吗?
对于第一个答案,你真的没有选择简单! – 2010-03-17 08:53:23
对不起,我不确定我是否明白你的意思... – tJener 2010-03-17 15:18:04
我认为他的意思是这是你已经回答的第一个问题,而问题不完全是C++ 101. :) – Ben 2010-03-17 19:07:12