2016-04-21 48 views
2

我目前有:升壓精神:強制屬性上無屬性解析器

start_ %= listrule_ | primrule_ ; 

與start_的屬性是一個boost ::變種,T>和primrule_的ATTRIB是T和listrule_的ATTRIB是性病::向量。

這是因爲我相信靈魂的「屬性傳播規則」。

我想添加第三個可能性:

start_ %= listrule_ | primrule_ | '*'; 

,我想「*」也有標準::載體,我會找到一個方法來填充與所有可能值向量的枚舉T.

歸屬'*'的語法是什麼?

這是精神2,採用C++ 11,提高1.58

回答

2

使用qi::attr指令

enum MyEnum { A, B, C, D, E }; 

start_ %= listrule_ 
     | primrule_ 
     | ('*' >> qi::attr(std::vector<MyEnum> { A, B, C, D, E }) 
     ;