Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;14标准附录A解释 什么是“附件C++有效结构的超集”? 还有,有什么指南可以帮助您阅读附录A中的语法吗_C++_Standards_Language Lawyer - Fatal编程技术网

C++;14标准附录A解释 什么是“附件C++有效结构的超集”? 还有,有什么指南可以帮助您阅读附录A中的语法吗

C++;14标准附录A解释 什么是“附件C++有效结构的超集”? 还有,有什么指南可以帮助您阅读附录A中的语法吗,c++,standards,language-lawyer,C++,Standards,Language Lawyer,附件A报价(不要将以下内容括起来,因为这会弄乱尖括号): 这篇C++语法的总结旨在帮助理解。这不是一个确切的说法 这种语言的特点。特别地,这里所描述的语法接受有效C++构造的超集。 必须应用消歧规则(6.8、7.1、10.2)来区分表达式和声明。进一步的 必须使用访问控制、歧义和类型规则来清除语法上有效但无意义的内容 构造 如果S是一组元素,则超集是另一个集合X,使得S中的每个元素S也是X的元素,但X中可能有X元素不是S的元素 例如,{1,2,3}是一组3个数字{1,2,3,4}是第一个集合的超

附件A报价(不要将以下内容括起来,因为这会弄乱尖括号):

这篇C++语法的总结旨在帮助理解。这不是一个确切的说法 这种语言的特点。特别地,这里所描述的语法接受有效C++构造的超集。 必须应用消歧规则(6.8、7.1、10.2)来区分表达式和声明。进一步的 必须使用访问控制、歧义和类型规则来清除语法上有效但无意义的内容 构造


如果S是一组元素,则超集是另一个集合X,使得S中的每个元素S也是X的元素,但X中可能有X元素不是S的元素

例如,
{1,2,3}
是一组3个数字
{1,2,3,4}
是第一个集合的超集——它包含
{1,2,3}
中的元素,但也包含一个额外的元素
4

<> P> >附件A中列出的语法将与C++匹配,但也将匹配不有效的C++。 然后,它列出了一些“语法之外”必须解决的问题——消歧规则、访问控制、歧义和类型规则


这个引文暗示,这是一套完整的事情,你必须考虑区分有效C++和语法匹配的事物,但没有明确地说出来。我不确定这种轻微的暗示是否真的是有意的。

这里有一个简短的例子,根据语法是有效的,但不是根据完整的语言规则:

int a[];
struct s;

void main(foo bar)
{
    return (sizeof a) + sizeof (s);
}

主要问题是语法是用上下文无关的表达来表示的,但是C++句法分析是高度上下文的。< /P>“不必把它作为角括号弄乱的话”,“没有任何角度括号”?@ AnttiHaapala,这是一个注释而不是答案,因为?鞭子