我期望能够在类声明中使用命名空间别名,但却收到了编译器语法错误。
struct MyClass
{
namespace abc = a_big_namespace;
void fn() {
abc::test();
}
};
我唯一能让它工作的方法是在每个函数中添加别名。
void fn() {
namespace abc = a_big_namespace;
abc::test();
}
另外,我希望能够使用函数参数的别名,但我还没有找到解决方法。
void fn(abc::testType tt) {
abc::test(tt);
}
有没有一种方法可以实现我想要的功能?
编辑:我的解决方案
我发现对于我的特定问题,我不需要未命名的命名空间,可以简单地这样做:
namespace myspace
{
namespace abc = a_big_namespace;
struct MyClass
{
void fn(abc::testType tt) {
abc::test(tt);
}
};
}
要切换到另一个库,也就是我的别名命名空间所指的内容,我只需更改别名即可。这种方法甚至允许我在同一文件中两次使用相同的类,每次都引用不同的库。 感谢您的帮助。
MyClass
需要在头文件中定义,有解决方案吗? - Tagli