当我使用这个 qi 语法接受来自 Lex 的标记时:
pair %= token(ID_MARKER)
>> ':'
>> atom
>> ','
>> atom
;
结合此融合/元组映射以协助捕获:
BOOST_FUSION_ADAPT_STRUCT(
Client::pair_rec,
(std::string, m_dummy ) // want to rid of this capture of ID_MARKER
(Client::atom_rec, m_atom_1 )
(Client::atom_rec, m_atom_2 )
)
一切正常。
但我想使用ID_MARKER
just 进行解析;我真的不需要或不想捕捉它。
所以我试图通过使用忽略该属性qi::lit
:
pair %= qi::lit( token(ID_MARKER) )
>> ':'
>> atom
>> ','
>> atom
;
连同m_dummy
从捕获中删除,但我只是得到一堵模板错误墙。
我应该做什么来清理这个?