在融合后的结构中提升Spirit x3元组成员

时间:2019-10-27 15:06:57

标签: c++ boost boost-spirit boost-spirit-x3

以下测试用例是对大型多文件解析器的简化,因此声明和定义的顺序有些奇怪。它不能编译,我的理解是 public partial class Form1 : Form { private readonly Label CompPany = new Label(); private readonly SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en- US")); } 将其绊倒。从文档看来,在我看来,如果存在正确的包含,则综合属性应该有一个std :: tuple。我在做什么错了?

std::tuple

谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个嵌套结构。但是,您将解析为与AST结构不匹配的平面合成元组:

换句话说,((int, int), int)在结构上与(int, (int, int))甚至与(int, int, int)都不兼容,就像您的规则将解析的那样。

上述变通办法有助于属性强制反映所需的(和必需的)结构。