我感兴趣的是是否有一种方法可以使用 boost spirit x3 解析成一个集合。背景是我有一串标记,每个标记代表一个枚举值,现在我想创建一个解析器,它解析每个标记是否最多在字符串中出现一次,如果我能得到所有的解析,那将是一个魅力令牌进入一段std::set
时间解析。为了从解析的字符串中取回枚举,我使用了 symbol_table:
enum class foo{bar, baz, bla, huh};
struct enum_table : x3::symbols<foo> {
enum_table() {
add("bar", foo::bar)
("baz", foo::baz)
("huh", foo::huh);
}
} const enum_parser;