Проблемы определения пространства имен псевдонимов - PullRequest
6 голосов
/ 07 июля 2011

У меня есть заголовочный файл, в котором я хочу использовать псевдоним пространства имен при определении класса.Однако я не хочу открывать этот псевдоним для всего, что включает в себя заголовочный файл.

// foo.h
namespace qux = boost::std::bar::baz::qux; // ! exposed to the world
class foo
{
    // can't put a namespace alias here

    // stuff using qux::
};

Как можно создать псевдоним пространства имен для объявления класса, чтобы он не просачивался повсюду?

1 Ответ

13 голосов
/ 07 июля 2011
namespace MyClassSpace
{
namespace qux = boost::std::bar::baz::qux;

class foo
{
  // use qux::
};

}

using MyClassSpace::foo; // lift 'foo' into the enclosing namespace

Так же делают большинство библиотек Boost, помещая все свои вещи в отдельное пространство имен и поднимая важные идентификаторы в пространство имен boost.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...