我正在尝试编写一个yacc (menhir)语法,用于解析一个非常简化的C++子集(没有模板,标头只允许任何函数体.)而且已经遇到了模棱两可的问题。typedef int B;
A(); // (*)};
Case *是构造函数,case **是括号大小的声明符。解析器是如何区分的?我可以想象一些我可以知道的方法,但是我想知道兼容的c++</em
问题的症结在于,在3.6版本中,TYPED_VALUE的复制构造是计算STRING类型的模板化转换操作符,因为存在接受STRING的构造函数;这会导致std::is_constructible被计算,这导致它需要^ class STRING;对我来说,这似乎是3.6中的一个错误,在以前的版本中,重载解析决定了复制构造函数</e