Как объявить псевдоним пространства имен в заголовочном файле, а затем использовать его в исходном файле? - PullRequest
0 голосов
/ 08 ноября 2011

Я хочу поместить псевдоним пространства имен (то есть пространство имен A = B :: C) в заголовочный файл, чтобы я мог использовать его в исходных файлах, но компилятор просто говорит мне, что это "не имя пространства имен". Есть мысли?

Это очень упрощенный пример того, что я пытаюсь сделать ...

заголовочный файл:

namespace A{
namespace B{
int getInt();
}
}

namespace AB = A::B;

source file:

#include "header_file.h"
#include <iostream>

int AB::getInt(){ // Error "AB is not a namespace name"
return 123;
}

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Вам необходимо включить файл, который объявляет пространство имен в заголовочный файл или, как говорится в комментариях, сделать это:

namespace B { namespace C { } }
namespace A = B::C;
1 голос
/ 08 ноября 2011

В момент создания псевдонима компилятор уже должен видеть пространство имен с псевдонимами.

Следовательно, вы должны #include файл, содержащий указанное пространство имен, или вы должны сделать это:

// "Forward Declaring" the namespace
namespace B { namespace C { } }

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