Doc说(精神经典):
a | b, Union, Match a or b. Also referred to as alternative
a ^ b, XOR, Match a or b, but not both.
有人在重要的时候给我一些实际的例子吗?
编辑:请给我一些实际的例子。创建规则,使用一些演员,解析一些东西并向我展示差异。我知道OR和XOR是什么,但我没有看到|之间的boost :: spirit结果有什么不同和^。
std::string t;
boost::spirit::classic::rule<> r = ( ch_p( 'a' ) ^ ch_p( 'b' ) )[ assign_a( t ) ];
//boost::spirit::classic::rule<> r = ( ch_p( 'a' ) | ch_p( 'b' ) )[ assign_a( t ) ];
boost::spirit::classic::parse( "when it matters?", r );
答案 0 :(得分:1)
^
中的运营商boost::spirit
(XOR)会创建排他性或&#39;解析器的组合。我没有得到它,因为我将主题插入到str_p / ch_p解析器中。
致@llonesmiz的积分,我从中得到了最好的例子:
parse( "Z", alpha_p ^ xdigit_p );