2016-05-17 45 views
1

我試圖使用現有的第三方enum類型的形式爲:包括現有的C++枚舉命名空間

enum EnumType 
{ 
    ONE, 
    TWO, 
    THREE 
} 

在我的項目有兩個用途:

    在一些文件
  1. 我想要導入此enum並將其放入現有的名稱空間(例如「namespace myproject」)。
  2. 文件API.h我想導入此enum正好與此enum的返回類型(在CPP文件我只想讓演員是myproject::EnumTypeEnumType)申報方法

爲什麼我想這樣做的原因這是我不想將enum的定義放在API標頭的名稱空間中。

我有第一個問題,我該怎麼辦?

+0

將'#include API.h'放入命名空間是否合理? –

+0

*爲什麼*你不想把定義放在API頭部的命名空間中? – user2079303

回答

1

using EnumType不足以供您使用;一個using-declaration ......

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

如果你仍想「隱藏」 EnumType從你的公共API中可見,那麼你就可以創建自己的enum具有相同的價值觀,以及兩者之間的轉換您碼。