#c #nested #namespaces
#c #вложенные #пространства имен
Вопрос:
Я прочитал эти 2 фрагмента кода и их описания и подумал, что они конфликтуют друг с другом.
- Определение пространства имен может отображаться только в глобальной области.
void f()
{
namespace space1{
}
}
// So this is not allowed as space1 is local to f()
- Пространства имен могут быть вложенными
namespace namespace1{
int i;
namespace namespace2{
int j;
}
}
В этом случае пространство имен2 не будет локальным для пространства имен1, что приведет к ошибке?
Комментарии:
1. Пожалуйста, укажите, откуда вы цитируете.
2. Неверно, что пространства имен могут быть только в глобальной области.
3. «Глобальная область» — это действительно глобальная область пространства имен. Пространства имен могут быть определены в любой области пространства имен.
Ответ №1:
Потому что ваша цитата неверна. Более правильным описанием было бы:
Определения пространств имен разрешены только в области пространства имен, включая глобальную область.