6 Basic concepts [basic]

6.3 Scope [basic.scope]

6.3.3 Block scope [basic.scope.block]

Имя, объявленное в a, block является локальным для этого блока; это есть block scope. Его потенциальная область действия начинается с его point of declaration и заканчивается в конце его блока. Переменная, объявленная в области видимости блока, - это local variable.

Потенциальная область видимости имени параметра функции (включая имя, появляющееся в a lambda-declarator) или предопределенной переменной функции в a function definition начинается с точки ее объявления. Если функция имеет function-try-blockпотенциальную область видимости параметра или предопределенной переменной, локальной для функции, заканчивается в конце последнего связанного обработчика, в противном случае она заканчивается в конце самого внешнего блока определения функции. Имя параметра не должно повторно объявляться ни во внешнем блоке определения функции, ни во внешнем блоке любого обработчика, связанного с a function-try-block.

Имя, объявленное в объекте, exception-declaration является локальным по отношению к handlerобъекту, и его нельзя повторно объявлять во внешнем блоке handler.

Имена объявлены в init-statement, то for-range-declarationи в conditionиз if, while, for, и switch заявления являются локальными к if, while, forили switch заявление ( в том числе и контролируемое заявление), и не может быть повторно объявлен в последующем состоянии этого заявления , ни в наружном блоке ( или, для if оператора, любой из самых внешних блоков) контролируемого оператора; см [stmt.select].