【问题标题】:Declared variable used in initializer expression - meaning?初始化表达式中使用的声明变量 - 含义?
【发布时间】:2011-11-11 12:43:48
【问题描述】:

取自this answer here

static const qi::rule<std::string::iterator, ast_t()> node = 
'{' >> *node >> '}' | +~qi::char_("{}");

请注意,声明了一个名为 node 的常量 var,但 node 用于初始化此常量。

这是怎么回事?

有用的“类似问题”一般显示that it is valid in C++,但它在这种精神表达中有何作用?

【问题讨论】:

    标签: c++ variables declaration definition boost-spirit


    【解决方案1】:

    这是一个递归定义,非常类似于this example with linked lists。构造一个语法规则,它引用自身。它之所以有效,是因为 operator* 通过 (const) 引用获取其参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多