On 11/10/2010 6:01 AM, teajay wrote:
Hi,
I'm working on finalizing an extension to spirit/qi in which I need to extract an attribute from a fusion sequence in a parser context. The problem I'm facing is that this parser attribute can be an unused type or a valid fusion sequence.
Just to illustrate my problem:
template
struct parser_dispachter { template <typename Index> void parse(Index &idx, Attribute &attr) { fusion::at_cIndex::value(Elements).parse(fusion::at_cIndex::value(attr)); } };
I actually have two cases: 1. Attribute = unused_type -> at_c replacement should return unused 2. Attribute = fusion sequence -> at_c replacement should return the corresponding attribute reference.
What would be the best solution to extract the give attribute ?
Thomas, Spirit::support already takes care of that. See attribute_of, attribute_not_unused, filter_unused_attributes and friends in in support/attributes.hpp. See how they are used. HTH Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net