Кто-нибудь может объяснить этот параграф текущего проекта стандарта C ++ 0x? - PullRequest
1 голос
/ 15 апреля 2011

Может ли кто-нибудь объяснить это утверждение из ISO N3242 §3.3.3, 2-я точка

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

Стандарт ISO 2003 гласит:

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

Какова действительная разница в этих операторах?

Кто-нибудь объясняет вышеупомянутый добавленный пункт в терминах пример / программа ...?

Я заметил, что он принадлежит к предопределенной переменной локальной функции , какой он на самом деле являетсяговоря .. там, относительно этого?

1 Ответ

4 голосов
/ 15 апреля 2011

Изменения являются добавлением «предопределенных переменных локальных функций», которые являются новыми для C ++ 0x.Это неявно определенные статические переменные, доступные для использования внутри функции.В проекте стандарта определен тот, который называется __func__, который дает имя функции и позволяет реализациям добавлять свои собственные.Теперь этот абзац говорит, что они доступны везде, где есть имена параметров функции.

...