我想在头文件中放置一个名称空间别名(即名称空间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;
}
答案 0 :(得分:2)
您需要在头文件中包含声明命名空间的文件,或者注释说这样做:
namespace B { namespace C { } }
namespace A = B::C;
答案 1 :(得分:1)
在创建别名时,编译器必须已经看到别名命名空间。
因此,您必须#include
包含所述命名空间的文件,或者您必须执行此操作:
// "Forward Declaring" the namespace
namespace B { namespace C { } }
namespace A = B::C;