如何在不复制此代码的情况下将多个函数放入多个命名空间?
How do I put several functions 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
}
我的问题:有没有更简单的方法可以做到这一点?
只需使用命名空间别名:
namespace OldNameSpaceName = NewNameSpaceName;
你可以简单地做
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;
}
活生生的例子在这里 https://wandbox.org/permlink/taRPm1hAd2FHbAYo
相关文章:
- 在命名空间中定义函数还是限定函数
- CUDA内核和数学函数的显式命名空间
- 在命名空间中使用全局命名空间中的函数
- 是否可以将函数导入命名空间,但不能导出它?
- 使用另一个命名空间中的函数C++
- Visual Studio 无法解决类和命名空间中重载的明确函数
- 命名空间更改函数定义
- C++命名空间中调用 void 函数的错误
- C++ 17 个友元函数声明和内联命名空间
- MFC 函数来自 :: 命名空间?
- 在命名空间内使用函数的循环包含
- 在命名空间中使用指令和函数重载
- 命名空间中未引用的函数
- 使用类指针重载C++命名空间函数模板专用化替代方法?
- cgo调用C++中定义的函数(位于命名空间中)
- c++ 内联友元函数是否会导致命名空间之间的名称隐藏?
- 在命名空间内部还是外部实现 c++ 函数?
- 如何在命名空间中正确调用此函数?c++
- 在同一函数中使用不同的命名空间
- 如何从嵌套在命名空间中的类调用成员函数?