Подтвердить что ты не робот

Переименование пространств имен

Я занимаюсь С++ уже давно, но сегодня утром я столкнулся с вопросом, на который я не мог ответить: "Можно ли создавать псевдонимы для пространств имен на С++?"

Позвольте мне привести пример. Скажем, у меня был следующий заголовок:

namespace old
{
  class SomeClass {};
}

Который по неуказанным причинам должен был стать:

namespace _new
{
  namespace nested
  {
    class SomeClass {}; // SomeClass hasn't changed
  }
}

Теперь, если у меня есть старая база кода, которая ссылается на SomeClass, я могу быстро (и грязно) "исправить" изменение, добавив:

namespace old
{
  typedef _new::nested::SomeClass SomeClass;
}

Но есть ли способ импортировать все из _new::nested в old без необходимости typedef явно каждого типа?

Нечто похожее на Python import * from ....

Спасибо.

4b9b3361

Ответ 1

using namespace new::nested;

Пример в Ideone.

Или, если вы действительно хотите настоящий псевдоним:

namespace on = one::nested;

Пример в Ideone.

Ответ 2

Это:

namespace old = newns::nested;

похоже, будет тем, что вы хотите.