C ++ с использованием пространств имен в том же вложенном пространстве имен - PullRequest
1 голос
/ 12 марта 2019

Допустим, у меня есть пространство имен:

namespace UI
{
}

И у меня есть другое пространство имен:

namespace Domain
{
}

Теперь, скажем, в пространстве имен домена у меня также есть пространство имен пользовательского интерфейса, которое является специфическимдля этого домена.

namespace Domain
{
    namespace UI
    {
    }
}

Возможно ли импортировать глобальное пространство имен пользовательского интерфейса в пространство имен домена, не импортируя его в пространство имен домена?Я знаю, что использование пространства имен часто не очень хорошая идея, но концептуально пространство имен пользовательского интерфейса домена должно находиться как в глобальном пространстве имен пользовательского интерфейса, так и в пространстве имен домена.

1 Ответ

2 голосов
/ 12 марта 2019

Единственными возможными способами являются псевдоним пространства имен или использование всего пользовательского интерфейса пространства имен в Domain :: UI.В обоих случаях есть способ получить к нему доступ из пространства имен домена.

Примеры:

namespace UI {
    class Test {

    };
}

namespace Domain {

}

namespace Domain {
    namespace UI {
        namespace _UI = ::UI;

        struct Test2 {
            _UI::Test param;
        };
    }
}

namespace Domain2 {

    namespace UI {
        using namespace ::UI;

        struct Test2 {
            Test param;
        };
    }
}
...