这就是标题所说的一切。
在boost spirit qi的上下文中,我不明白attr_cast何时比转换值的语义动作更可取,例如:[_val = convert(_1)]
答案 0 :(得分:3)
Attr_cast可以帮助精神检测稍微不兼容的属性类型(例如attr_cast<optional<bool>>
将'只是bool'更改为'Maybe bool')并定义将在哪个级别属性进行拆分,例如
string = '0' >> (repeat(3) [ qi::char_("0-9") ] % "'")
可能具有与
不同的属性兼容性 string = '0' >> attr_cast(repeat(3) [ qi::char_("0-9") ]) % "'"
另见:
换句话说,我觉得attr_cast
主要用于转换属性值,而不是在子表达式中注释属性 types 预期的暴露属性结构“,而不必诉诸于声明qi::rule<>
来注释它。
我只使用attr_cast
作为'轻量级'规则。