将现有C ++枚举包含在命名空间

时间:2016-05-17 12:59:01

标签: c++ enums namespaces

我正在尝试使用现有第三方 enum类型的表单:

enum EnumType 
{
    ONE,
    TWO,
    THREE
}  

在我的项目中有两个用法:

  1. 在某些文件中我想导入此enum并将其放入现有的命名空间(例如“namespace myproject”)。
  2. 在文件API.h中我想导入此enum只是为了声明返回类型为enum的方法(在cpp文件中我只是从myproject::EnumType进行强制转换到EnumType
  3. 我想这样做的原因是我不想将enum的定义放在API标头的命名空间中。

    我对第一点有疑问,我该怎么办?

1 个答案:

答案 0 :(得分:1)

using EnumType是否不足以供您使用;一个using-declaration ......

namespace my_project {
  using ::EnumType;
  //...
}

如果您仍然希望“隐藏”EnumType在公共API中不可见,那么您可以使用相同的值创建自己的enum,并在代码中的两者之间进行转换