использование "нескольких" пространств имен однострочное

Есть ли упрощенный способ включить больше пространств имен вместо того, чтобы каждый раз вводить одно и то же. Это очень раздражает, особенно в файлах.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;
}

Вот демо.

Другие вопросы по тегам