предварительное объявление пространства имен

namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;//Error
}
namespace NS {
int i;
}
// ...
namespace NS {
int j;
}

В приведенном выше случае отображается ошибка. ошибка C2871: «NS»: пространство имен с таким именем не существует. Я знаю, определяю ли я NS до того, как будет решена проблема с контрольным пространством имен. Но просто хочу знать, существует ли что-либо вроде прямого объявления пространства имен в C ++ или нет. Так что указанная выше проблема будет решена без определения NS перед counterternamespace. пожалуйста помоги .


person Viku    schedule 31.12.2012    source источник
comment
@ user1872084 :: Ссылка выше относится к прямому объявлению класса.   -  person Viku    schedule 31.12.2012


Ответы (1)


Ничто не говорит о том, что пространство имен требует сразу всего его содержимого:

namespace NS {}
namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;
}
namespace NS {
int i;
}

Однако это может не сделать то, что вы хотите. Вы по-прежнему не сможете использовать какие-либо типы в этом пространстве имен, пока не объявите их.

person Cory Nelson    schedule 31.12.2012