tmp/tmp8hop5lt9/{from.md → to.md}
RENAMED
|
@@ -11,23 +11,23 @@ init-declarator-list:
|
|
| 11 |
init-declarator-list ',' init-declarator
|
| 12 |
```
|
| 13 |
|
| 14 |
``` bnf
|
| 15 |
init-declarator:
|
| 16 |
-
declarator initializer
|
| 17 |
-
declarator requires-clause
|
| 18 |
```
|
| 19 |
|
| 20 |
In all contexts, a *declarator* is interpreted as given below. Where an
|
| 21 |
*abstract-declarator* can be used (or omitted) in place of a
|
| 22 |
*declarator* [[dcl.fct]], [[except.pre]], it is as if a unique
|
| 23 |
identifier were included in the appropriate place [[dcl.name]]. The
|
| 24 |
-
preceding specifiers indicate the type, storage
|
| 25 |
-
properties of the entity or entities being declared. Each
|
| 26 |
-
specifies one entity and (optionally) names it and/or
|
| 27 |
-
of the specifiers with operators such as `*` (pointer
|
| 28 |
-
(function returning).
|
| 29 |
|
| 30 |
[*Note 1*: An *init-declarator* can also specify an initializer
|
| 31 |
[[dcl.init]]. — *end note*]
|
| 32 |
|
| 33 |
Each *init-declarator* or *member-declarator* in a declaration is
|
|
@@ -105,10 +105,14 @@ void g(int (*)() requires true); // error: constraint on a parameter-
|
|
| 105 |
auto* p = new void(*)(char) requires true; // error: not a function declaration
|
| 106 |
```
|
| 107 |
|
| 108 |
— *end example*]
|
| 109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
Declarators have the syntax
|
| 111 |
|
| 112 |
``` bnf
|
| 113 |
declarator:
|
| 114 |
ptr-declarator
|
|
|
|
| 11 |
init-declarator-list ',' init-declarator
|
| 12 |
```
|
| 13 |
|
| 14 |
``` bnf
|
| 15 |
init-declarator:
|
| 16 |
+
declarator initializer
|
| 17 |
+
declarator requires-clauseₒₚₜ function-contract-specifier-seqₒₚₜ
|
| 18 |
```
|
| 19 |
|
| 20 |
In all contexts, a *declarator* is interpreted as given below. Where an
|
| 21 |
*abstract-declarator* can be used (or omitted) in place of a
|
| 22 |
*declarator* [[dcl.fct]], [[except.pre]], it is as if a unique
|
| 23 |
identifier were included in the appropriate place [[dcl.name]]. The
|
| 24 |
+
preceding specifiers indicate the type, storage duration, linkage, or
|
| 25 |
+
other properties of the entity or entities being declared. Each
|
| 26 |
+
declarator specifies one entity and (optionally) names it and/or
|
| 27 |
+
modifies the type of the specifiers with operators such as `*` (pointer
|
| 28 |
+
to) and `()` (function returning).
|
| 29 |
|
| 30 |
[*Note 1*: An *init-declarator* can also specify an initializer
|
| 31 |
[[dcl.init]]. — *end note*]
|
| 32 |
|
| 33 |
Each *init-declarator* or *member-declarator* in a declaration is
|
|
|
|
| 105 |
auto* p = new void(*)(char) requires true; // error: not a function declaration
|
| 106 |
```
|
| 107 |
|
| 108 |
— *end example*]
|
| 109 |
|
| 110 |
+
The optional *function-contract-specifier-seq* [[dcl.contract.func]] in
|
| 111 |
+
an *init-declarator* shall be present only if the *declarator* declares
|
| 112 |
+
a function.
|
| 113 |
+
|
| 114 |
Declarators have the syntax
|
| 115 |
|
| 116 |
``` bnf
|
| 117 |
declarator:
|
| 118 |
ptr-declarator
|