如果我需要在头文件中创建一个未命名的命名空间,怎么办?

26 浏览
0 Comments

如果我需要在头文件中创建一个未命名的命名空间,怎么办?

在C++中,一个匿名命名空间等同于:

namespace $$$$ {
  //一些代码
}
using namespace $$$$;

其中$$$$是某种唯一标识符。匿名命名空间对于不希望在编译单元外部可见的代码非常有用。

到目前为止都还好,然而最近我开始编写一些带有模板的代码,这些代码必须放在头文件中,因此使用匿名命名空间没有太多意义,因为头文件的包含本身就会取消隔离效果。

那么问题是,在这种情况下有什么建议的方法?我开始使用一个名为Private的命名空间。虽然它无法真正阻止任何想要使用其中的标识符的人,但至少它将名称冲突减少到了"id "Private"."。

是否有更好的方法?有什么建议吗?

0