Переименование пространств имен - PullRequest
25 голосов
/ 24 мая 2011

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

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

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 ....

Спасибо.

Ответы [ 2 ]

52 голосов
/ 24 мая 2011
using namespace new::nested;

Пример на Ideone .

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

namespace on = one::nested;

Пример в Ideone .

31 голосов
/ 24 мая 2011

Это:

namespace old = newns::nested;

может показаться тем, что вы хотите.

...