这是后续行动:
How do I put some code into multiple namespaces without duplicating this code?
我需要更改命名空间的名称,但希望保持向后兼容性。上面的解决方案表明我必须为每个函数做那里做的事情:
namespace NewNamespaceName
{
void print()
{
//do work...
}
// 50 other functions
}
namespace OldNameSpaceName
{
using NewNamespaceName::print;
// 50 other using declarations
}
我的问题:有更简单的方法吗?
答案 0 :(得分:6)
只需使用命名空间别名:
namespace OldNameSpaceName = NewNameSpaceName;
答案 1 :(得分:1)
你可以简单地做
namespace NewNamespaceName
{
void print()
{
//do work...
}
// 50 other functions
}
namespace OldNameSpaceName
{
using namespace NewNamespaceName;
}
如果NewNamespaceName
包含您希望包含的其他内容,但又不希望它们位于OldNamespaceName
中,那么只需创建另一个私有命名空间并将其导入旧命名空间
namespace NewNamespaceName
{
namespace Private {
void print() { ... }
// 50 other functions
}
}
namespace OldNameSpaceName
{
using namespace NewNamespaceName::Private;
}