代码之家  ›  专栏  ›  技术社区  ›  hamishmcn

C++命名空间问题

  •  17
  • hamishmcn  · 技术社区  · 17 年前

    我正在编写一些代码,这些代码是由一位不再在公司工作的同事编写的,我发现了以下代码:(我在下面删掉了这些代码)

    namespace NsA { namespace NsB { namespace NsC {
    
        namespace { 
            class A { /*etc*/ };
            class B { /*etc*/ };
        }    
    
        namespace {
            class C { /*etc*/ };
        }
    } } }
    


    有人能解释一下没有名称的名称空间条目的用途吗?
    谢谢

    1 回复  |  直到 17 年前
        1
  •  36
  •   Joris Timmermans    17 年前

    这是一个“匿名名称空间”——它创建了一个隐藏的名称空间名称,保证每个“翻译单元”(即每个CPP文件)都是唯一的。

    this article 在未命名的名称空间上。