Существует ли псевдоним пространства имен С++, определенный внутри определения функции, блок, функция, файл или другая область действия (продолжительность действия)?
Какова область псевдонимов пространства имен в С++?
Ответ 1
Это срок действия блока. Например, если вы определяете псевдоним пространства имен, как указано ниже, псевдоним abc пространства имен будет недопустимым вне блока {...}.
{
namespace abc = xyz;
abc::test t; //valid
}
abc::test t; //invalid
Ответ 2
Область - это декларативная область, в которой определяется псевдоним.
Ответ 3
У него будет область действия блока, в которой она была определена - вероятно, будет такой же, как и область действия, если вы не объявите псевдоним внутри блока внутри функции.
Ответ 4
Я вполне уверен, что псевдоним пространства имен имеет только область видимости внутри созданного им блока, как и большинство других типов идентификаторов. На данный момент я не могу проверить, но эта страница, похоже, не против.
Ответ 5
Насколько я знаю, это в области, которую она объявила. Итак, если вы используете псевдоним в методе, то он действителен в этом методе, но не в другом.
Ответ 6
Взгляните на http://en.wikibooks.org/wiki/C++_Programming/Scope/Namespaces
Ответ 7
Он действителен для продолжительности области, в которой он введен.
Взгляните на http://en.cppreference.com/w/cpp/language/namespace_alias, я доверяю объяснению cppreference, это гораздо более стандартное.