c++的一个特性是能够创建未命名(匿名)的名称空间,如下所示:
namespace {
int cannotAccessOutsideThisFile() { ... }
} // namespace
您可能会认为这样的特性毫无用处——因为不能指定名称空间的名称,因此不可能从外部访问其中的任何内容。但是,这些未命名的名称空间可以在创建它们的文件中访问,就像对它们有一个隐式的using子句一样。
我的问题是,为什么或者什么时候这比使用静态函数更可取?或者它们本质上是做同一件事的两种方式?