如何解释C ++标准文档中的“术语和定义”?

时间:2012-12-04 17:45:43

标签: c++ standards

当我研究C ++标准(Where do I find the current C or C++ standard documents?)中的不同部分时,我想回顾一下“术语和定义”,§1.3。

但是,术语和定义是以我无法充分理解或解释的形式提供的,文中没有解释如何解释它们。

考虑标准的“术语和定义”部分中定义的第一个术语:

  

1.3.1 [ defns.argument ]

     

参数

     

实际论点

     

实际参数

     

<函数调用表达式>逗号分隔列表中的表达式   括号括起来

  1. [ defns.argument ]指的是什么?
  2. actual argumentactual parameter
  3. 的含义和目的是什么?
  4. <function call expression>是否引用了不同的“术语或定义”?如果是这样,它在“术语和定义”部分中没有定义 - 为什么不呢?如果没有,它指的是什么? (注意:我不是在问“函数调用表达式”是什么意思,因为我已经知道了;相反,我想知道如何使用这个简单的例子来阅读和解释C ++标准的“术语和定义”部分。)

2 个答案:

答案 0 :(得分:5)

  1.   

    [ defns.argument ]引用什么?

    [defns.argument]是部分标记;它旨在用于编辑目的,因为它在章节重新编号下是不变的(例如,响应插入,删除或重新排序部分)。它也可用于参考标准,但章节编号(相对于标准的已发布版本)更简洁。

  2.   

    线实际参数和实际参数的含义和目的是什么?

    实际参数”和“实际参数”是术语“ 参数 ”的别名。您将在 1.3.14 [defns.parameter] 下面看到“形式参数”和“形式参数”是术语“的别名”的 参数 ”。

    术语“实际参数”和“实际参数”仅出现在[defns.argument]中; “形式参数”在8.3.5p11中被描述为别名,“形式参数”在大约13个地方使用,是使用“参数”的地方数量的一小部分。

  3.   

    &lt; function call expression&gt;请参考不同的“术语或定义”?

    角度括号内的术语是此定义适用的上下文。例如,“参数”在“函数调用表达式”的上下文中具有不同的含义,在“函数式宏的上下文中 EM>”

答案 1 :(得分:3)

  

[defns.argument]指的是什么?

这是参考(1.3.1)部分的另一种方式。它应该在标准的未来版本中保持不变(除非它被删除),而编号可能会改变。

  

“实际参数”和“实际参数”的含义和目的是什么?

他们是您可能会看到的其他术语,这意味着同样的事情。我相信旧版本的规格。使用“正式论证”和“实际论证”所在的现代规范。使用“参数”和“参数”。

  

<function call expression>是否引用了不同的“术语或定义”?

这就是“论证”具有这种含义的背景 - 以下各节在其他背景下给出了不同的含义。函数调用表达式在5.2.2中定义;在这样的表达式中,“参数”意味着“以括号括起来的逗号分隔列表中的表达式”。