tmp/tmpi_dkns4_/{from.md → to.md}
RENAMED
|
@@ -1,28 +1,40 @@
|
|
| 1 |
-
###
|
| 2 |
|
| 3 |
Function definitions have the form
|
| 4 |
|
| 5 |
``` bnf
|
| 6 |
function-definition:
|
| 7 |
-
attribute-specifier-seqₒₚₜ decl-specifier-seqₒₚₜ declarator virt-specifier-seqₒₚₜ
|
| 8 |
-
|
|
|
|
|
|
|
| 9 |
```
|
| 10 |
|
| 11 |
``` bnf
|
| 12 |
function-body:
|
| 13 |
ctor-initializerₒₚₜ compound-statement
|
| 14 |
function-try-block
|
| 15 |
'=' default ';'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
'=' delete ';'
|
|
|
|
| 17 |
```
|
| 18 |
|
| 19 |
Any informal reference to the body of a function should be interpreted
|
| 20 |
-
as a reference to the non-terminal *function-body*
|
|
|
|
|
|
|
|
|
|
| 21 |
*attribute-specifier-seq* in a *function-definition* appertains to the
|
| 22 |
-
function. A *virt-specifier-seq*
|
| 23 |
-
|
|
|
|
| 24 |
|
| 25 |
In a *function-definition*, either `void` *declarator* `;` or
|
| 26 |
*declarator* `;` shall be a well-formed function declaration as
|
| 27 |
described in [[dcl.fct]]. A function shall be defined only in namespace
|
| 28 |
or class scope. The type of a parameter or the return type for a
|
|
|
|
| 1 |
+
### General <a id="dcl.fct.def.general">[[dcl.fct.def.general]]</a>
|
| 2 |
|
| 3 |
Function definitions have the form
|
| 4 |
|
| 5 |
``` bnf
|
| 6 |
function-definition:
|
| 7 |
+
attribute-specifier-seqₒₚₜ decl-specifier-seqₒₚₜ declarator virt-specifier-seqₒₚₜ
|
| 8 |
+
function-contract-specifier-seqₒₚₜ function-body
|
| 9 |
+
attribute-specifier-seqₒₚₜ decl-specifier-seqₒₚₜ declarator requires-clause
|
| 10 |
+
function-contract-specifier-seqₒₚₜ function-body
|
| 11 |
```
|
| 12 |
|
| 13 |
``` bnf
|
| 14 |
function-body:
|
| 15 |
ctor-initializerₒₚₜ compound-statement
|
| 16 |
function-try-block
|
| 17 |
'=' default ';'
|
| 18 |
+
deleted-function-body
|
| 19 |
+
```
|
| 20 |
+
|
| 21 |
+
``` bnf
|
| 22 |
+
deleted-function-body:
|
| 23 |
'=' delete ';'
|
| 24 |
+
'=' delete '(' unevaluated-string ')' ';'
|
| 25 |
```
|
| 26 |
|
| 27 |
Any informal reference to the body of a function should be interpreted
|
| 28 |
+
as a reference to the non-terminal *function-body*, including, for a
|
| 29 |
+
constructor, default member initializers or default initialization used
|
| 30 |
+
to initialize a base or member subobject in the absence of a
|
| 31 |
+
*mem-initializer-id* [[class.base.init]]. The optional
|
| 32 |
*attribute-specifier-seq* in a *function-definition* appertains to the
|
| 33 |
+
function. A *function-definition* with a *virt-specifier-seq* shall be a
|
| 34 |
+
*member-declaration* [[class.mem]]. A *function-definition* with a
|
| 35 |
+
*requires-clause* shall define a templated function.
|
| 36 |
|
| 37 |
In a *function-definition*, either `void` *declarator* `;` or
|
| 38 |
*declarator* `;` shall be a well-formed function declaration as
|
| 39 |
described in [[dcl.fct]]. A function shall be defined only in namespace
|
| 40 |
or class scope. The type of a parameter or the return type for a
|