использование "нескольких" пространств имен однострочное
Есть ли упрощенный способ включить больше пространств имен вместо того, чтобы каждый раз вводить одно и то же. Это очень раздражает, особенно в файлах.h.
Например:
Вместо того, чтобы писать:
int f() {
using namespace blabla1;
using namespace blabla2;
using namespace blabla3;
}
Я бы предпочел:
используя myNamespace = blabla1, blabla2, blabla3;
int f() {
using namespace myNamespace;
/// this will be equivalent to the previous example
}
Спасибо
2 ответа
Решение
Директивы using транзитивны. Итак, если вы объедините их в одно пространство имен
namespace All {
using namespace A;
using namespace B;
using namespace C;
}
Затем вы можете просто сделать
using namespace All;
И неквалифицированный поиск имени будет работать.
Я не уверен, что это поможет вам, но если вы хотите избежать использования нескольких операторов каждый раз, вы можете обернуть указанные выше пространства имен в другое пространство имен:
namespace myNameSpace {
using namespace blabla1;
using namespace blabla2;
using namespace blabla3;
}
а затем используйте его так:
int f() {
using namespace myNameSpace;
}
Вот демо.