static const qi::rule<std::string::iterator, ast_t()> node =
'{' >> *node >> '}' | +~qi::char_("{}");
请注意,声明了名称node
的常量变量,但node
用于初始化此常量。
这里发生了什么?
有用的“类似问题”一般显示that it is valid in C++,但它在这种精神表达方面做了什么?
答案 0 :(得分:4)
这是一个递归定义,与this example with linked lists非常相似。构造语法规则,引用自身。它起作用是因为operator*
通过(const
)引用获取其参数。