未命名的命名空间对类有什么影响?

26 浏览
0 Comments

未命名的命名空间对类有什么影响?

我正在查看一些(C++)代码,发现了这样的内容:

//Foo.cpp
namespace
{
    void SomeHelperFunctionA() {}
    void SomeHelperFunctionB() {}
    void SomeHelperFunctionC() {}
    //等等...    
    class SomeClass //<---
    {
        //实现
    };
}

SomeHelperFunction[A-Z]是只在该编译单元中需要的函数,所以我理解它们为什么在一个没有命名的namespace中。同样,SomeClass也只在该编译单元中需要,但我印象中,如果没有全局类声明(例如,在一个常用的包含头文件中),你可以在不同的编译单元中拥有相同名称的类而不会出现任何命名冲突。

我还应该提到,这个特定的编译单元没有包含任何可能声明具有相同名称(SomeClass)的类的头文件。

所以,根据这些信息,有人可以解释一下原始程序员为什么会这样做吗?也许只是为了以防万一?

老实说,我以前从未见过在无名命名空间中使用类。

0