c ++名称空间导出

ano*_*non 0 c++ namespaces export

在C++中是否有一种方法可以创建一个匿名命名空间,并且只从中导出一个函数?

我想要的东西:

namespace {
  void Bar() {}
  void Foo() { Bar(); }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想以某种方式访问​​,Foo()但确保没有办法触摸Bar()

谢谢!

Did*_*set 7

如果要导出该函数,则必须将其放在匿名命名空间之外.

namespace {
  void Bar() {};
};
void Foo() { Bar(); };
Run Code Online (Sandbox Code Playgroud)

  • 它确实限制从其他编译单元访问Bar(). (2认同)