看起来在类中声明命名空间别名是不可能的; 但是我们可以在功能级别这样做(用g ++ 4.3.4测试):
namespace A
{
}
class C
{
namespace N = A; // error: expected unqualified-id before `namespace'
};
class D
{
void f();
};
void D::f()
{
namespace N = A; // OK
}
Run Code Online (Sandbox Code Playgroud)
知道为什么存在这样的限制吗?这似乎与可以在类中声明的typedef非常一致.