【发布时间】:2011-08-28 16:50:48
【问题描述】:
我希望能够在类声明中使用命名空间别名,但出现编译器语法错误。
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);
}
};
}
要切换到另一个库,这是我的别名命名空间所指的,我只需更改别名。这种方法甚至允许我在一个文件中两次拥有相同的类,每次都引用不同的库。 感谢您的所有帮助。
【问题讨论】:
标签: c++ namespaces scope alias