2013-10-05 3 views
1

Вот и все, что сказано в названии., когда я должен выбрать boost spirit attr_cast над смысловым действием

В контексте повышения духа й, я не понимаю, когда attr_cast будет предпочтительнее смыслового действие, которое преобразует значение, скажем: [_val = преобразования (_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 не в первую очередь полезно преобразовать атрибут значения, а аннотировать атрибуту типов в подвыражения с «предполагаемой открытой структурой атрибута», без необходимости прибегать к объявляя qi::rule<> аннотировать это.

Я использую только attr_cast как «легкие» правила.