我有一個命名空間中定義枚舉成員的一個長長的清單:檢查是否定義了枚舉成員?
namespace nsexp{
enum expname{
AMS1,
AMS2,
BESS1,
BESS2,
...
};
}
這是非常有用的,我不時地評論他們中的一些時間,這樣的事情:
namespace nsexp{
enum expname{
AMS1,
AMS2,
BESS1,
//BESS2,
...
};
}
使我可以將它們排除在我的程序之外。然而,這創造了一個功能,一些衝突,其中發生這種情況:
strcpy(filename[nsexp::BESS2],"bess/data_exp2");
我能解決也評論這條線,但如果我不包括許多成員這可累。有沒有辦法來檢查成員是否存在於命名空間中?
我在尋找類似:
if("BESS2 exists") strcpy(filename[nsexp::BESS2],"bess/data_exp2");
這需要在編譯時做的,一個'如果()'語句不會幫助。我不確定一些模板元編程技巧是否可行,但即使如此,如果這樣做值得的話也值得懷疑。 –