How to interpret "terms and definitions" in a standard C ++ document?

As I study different sections in the C ++ standard ( Where can I find current standard C or C ++ documents? ), I would like to return to the section “Terms and definitions”, § 1.3.

However, the terms and definitions are provided in a form that I cannot adequately understand or interpret, and there is no explanation in the text on how to interpret them.

Consider the very first term that is defined in the "Terms and Definitions" section of the standard:

1.3.1 [ defns.argument ]

argument

actual argument

valid parameter

& call function expression> comma delimited expression delimited by parentheses

  • What does < defns.argument ] defns.argument ?
  • What is the meaning and purpose of the lines of actual argument and actual parameter ?
  • Does <function call expression> point to another term or definition? If so, it is not defined in the Terms and Definitions section - why not? If not, what does this apply to? (NOTE: I am not asking what “function expression” means because I already know, instead I am asking how to read and interpret the "Terms and Definitions" section of the C ++ standard using this simple example.)
+7
source share
2 answers
  • What does < defns.argument ] defns.argument ?

    [defns.argument] - section tag; it is intended for editorial use because it is invariant by section numbering (for example, in response to insertion, deletion, or reordering of sections). It can also be used when referring to the standard, but the section numbers (relative to the published version of the standard) are shorter.

  • What is the meaning and purpose of the actual string argument and the actual parameter?

    “actual argument” and “actual parameter” are aliases for the term “ argument ”. In section 1.3.14 [defns.parameter] below, you will see that the “formal argument” and “formal parameter” are aliases for the term “ parameter ”.

    The terms "actual argument" and "actual parameter" appear only in [defns.argument]; the "formal argument" is described as an alias in 8.3.5p11, and the "formal parameter" is used in about 13 places, a small part of the number of places where the "parameter" is used.

  • Does the expression call the expression <function expression> refer to another "term or definition"?

    The term in square brackets is the context in which this definition is applied. For example, “argument” has a different meaning in the context of a “function call expression” in the context of a “function-like macro”.

+5
source

What does [defns.argument] mean?

This is an alternative way to access section (1.3.1). It should remain unchanged in future versions of the standard (unless it is deleted), while the numbering may change.

What is the meaning and purpose of the “actual argument” and “actual parameter”?

These are other terms that you can see, it means the same thing. I believe that the old version of the specification. used the "formal argument" and the "actual argument", where the current specification is. uses "parameter" and "argument".

Does <function call expression> point to another term or definition?

Because the context in which the "argument" has this meaning, the following sections give it different meanings in other contexts. Function call expressions are defined in 5.2.2; inside such an expression, “argument” means “an expression in a comma-delimited list delimited by parentheses”.

+3
source

All Articles