tmp/tmpkb4yrtqn/{from.md → to.md}
RENAMED
|
@@ -1,15 +1,19 @@
|
|
| 1 |
#### Automatic storage duration <a id="basic.stc.auto">[[basic.stc.auto]]</a>
|
| 2 |
|
| 3 |
-
Variables that belong to a block
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
|
| 8 |
[*Note 1*: These variables are initialized and destroyed as described
|
| 9 |
in [[stmt.dcl]]. — *end note*]
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
If a variable with automatic storage duration has initialization or a
|
| 12 |
destructor with side effects, an implementation shall not destroy it
|
| 13 |
before the end of its block nor eliminate it as an optimization, even if
|
| 14 |
it appears to be unused, except that a class object or its copy/move may
|
| 15 |
be eliminated as specified in [[class.copy.elision]].
|
|
|
|
| 1 |
#### Automatic storage duration <a id="basic.stc.auto">[[basic.stc.auto]]</a>
|
| 2 |
|
| 3 |
+
Variables that belong to a block scope and are not explicitly declared
|
| 4 |
+
`static`, `thread_local`, or `extern` have *automatic storage duration*.
|
| 5 |
+
The storage for such variables lasts until the block in which they are
|
| 6 |
+
created exits.
|
| 7 |
|
| 8 |
[*Note 1*: These variables are initialized and destroyed as described
|
| 9 |
in [[stmt.dcl]]. — *end note*]
|
| 10 |
|
| 11 |
+
Variables that belong to a parameter scope also have automatic storage
|
| 12 |
+
duration. The storage for a function parameter lasts until immediately
|
| 13 |
+
after its destruction [[expr.call]].
|
| 14 |
+
|
| 15 |
If a variable with automatic storage duration has initialization or a
|
| 16 |
destructor with side effects, an implementation shall not destroy it
|
| 17 |
before the end of its block nor eliminate it as an optimization, even if
|
| 18 |
it appears to be unused, except that a class object or its copy/move may
|
| 19 |
be eliminated as specified in [[class.copy.elision]].
|