1

就是这个标题说明了一切。

在提升精神气的情况下,我不明白 attr_cast 何时比转换值的语义动作更可取,比如:[_val = convert(_1)]

4

1 回答 1

3

Attr_cast 有助于精神检测稍微不兼容的属性类型(例如attr_cast<optional<bool>>,将“Just bool”更改为“Maybe bool”)并定义将在哪个级别拆分属性,例如

 string = '0' >> (repeat(3) [ qi::char_("0-9") ] % "'")

可能具有不同的属性兼容性

 string = '0' >> attr_cast(repeat(3) [ qi::char_("0-9") ]) % "'"

也可以看看:

  • 作为<>
  • as_string
  • as_wstring

换句话说,我觉得强制转换属性attr_cast并不是主要有用的,而是用“预期的公开属性结构”来注释子表达式中的属性类型,而不必诉诸于声明 a来注释它。qi::rule<>

我只attr_cast用作“轻量级”规则。

于 2013-10-06T00:15:53.967 回答