如果我需要在头文件中创建一个未命名的命名空间,怎么办?
- 论坛
- 如果我需要在头文件中创建一个未命名的命名空间,怎么办?
26 浏览
如果我需要在头文件中创建一个未命名的命名空间,怎么办?
在C++中,一个匿名命名空间等同于:
namespace $$$$ { //一些代码 } using namespace $$$$;
其中$$$$是某种唯一标识符。匿名命名空间对于不希望在编译单元外部可见的代码非常有用。
到目前为止都还好,然而最近我开始编写一些带有模板的代码,这些代码必须放在头文件中,因此使用匿名命名空间没有太多意义,因为头文件的包含本身就会取消隔离效果。
那么问题是,在这种情况下有什么建议的方法?我开始使用一个名为Private的命名空间。虽然它无法真正阻止任何想要使用其中的标识符的人,但至少它将名称冲突减少到了"id "Private"."。
是否有更好的方法?有什么建议吗?