具有名称空间的内部功能是否不好?

时间:2018-12-10 11:21:08

标签: c++

说我有一个名称空间Util,其中包含一些基本功能。但是在该名称空间中,我需要一个库的功能来完成工作,但是我不想让头文件知道它,因此最终我使用所需的功能创建了一个匿名的名称空间,但又不想将其公开。有更好的方法吗?

例如:

# Util.h  
namespace Util{  int Add();  }

# Util.cpp
namespace Util{
 namespace {
  funkyInt Add_internal(int x, int y);
  int convert(funkyInt x);
 }

 int Add(int x, int y){
  return convert(Add_internal(x,y))
 }

 funkyInt Add_internal(int x, int y){
 //DOSomething
 }
}

1 个答案:

答案 0 :(得分:0)

那很好。

匿名命名空间是在您的命名空间中,还是全局命名空间是“品味和轻松”。

  • 品尝,因为代码可能完全相同
  • 轻松的原因是,如果您重复使用非匿名名称空间的其他功能,则不必添加前缀或使用该名称空间。