From Jason Turner

[basic.scope.block]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp2j8k90jr/{from.md → to.md} +30 -0
tmp/tmp2j8k90jr/{from.md → to.md} RENAMED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Block scope <a id="basic.scope.block">[[basic.scope.block]]</a>
2
+
3
+ A name declared in a block ([[stmt.block]]) is local to that block; it
4
+ has *block scope*. Its potential scope begins at its point of
5
+ declaration ([[basic.scope.pdecl]]) and ends at the end of its block. A
6
+ variable declared at block scope is a *local variable*.
7
+
8
+ The potential scope of a function parameter name (including one
9
+ appearing in a *lambda-declarator*) or of a function-local predefined
10
+ variable in a function definition ([[dcl.fct.def]]) begins at its point
11
+ of declaration. If the function has a *function-try-block* the potential
12
+ scope of a parameter or of a function-local predefined variable ends at
13
+ the end of the last associated handler, otherwise it ends at the end of
14
+ the outermost block of the function definition. A parameter name shall
15
+ not be redeclared in the outermost block of the function definition nor
16
+ in the outermost block of any handler associated with a
17
+ *function-try-block*.
18
+
19
+ The name declared in an *exception-declaration* is local to the
20
+ *handler* and shall not be redeclared in the outermost block of the
21
+ *handler*.
22
+
23
+ Names declared in the *for-init-statement*, the *for-range-declaration*,
24
+ and in the *condition* of `if`, `while`, `for`, and `switch` statements
25
+ are local to the `if`, `while`, `for`, or `switch` statement (including
26
+ the controlled statement), and shall not be redeclared in a subsequent
27
+ condition of that statement nor in the outermost block (or, for the `if`
28
+ statement, any of the outermost blocks) of the controlled statement;
29
+ see  [[stmt.select]].
30
+