C++中命名空间的五大常见用法( 三 )

匿名命名空间

匿名的命名空间可避免产生全局静态变量 。 您创建的 “匿名” 命名空间只能在创建它的文件中访问 。

解决枚举类型成员重名问题

如果在同一个作用域内定义了具有相同名称的枚举 , C++中的“传统”枚举会在其作用域内导出枚举值 , 可能会导致名称冲突 ,

在一个大型项目中 , 不能保证两个不同的枚举都不会以同名命名 。 这个问题在C++ 11中已经得以解决 , 它使用枚举类 , 隐式地对枚举名称中的枚举值进行定义 。

许多年前 使用在命名空间内声明枚举的技巧解决这个问题 而不是像这样声明枚举

enum status{

status_ok

status_error

;

它在命名空间中声明:

namespace status{

推荐阅读