在c++11
代碼中,每次使用枚舉值時都應該避免提及特定的枚舉限定符 - 因爲它是一個新代碼,並且它被重構了很多。避免硬編碼枚舉類型
爲了這個目的是否有可能在東西這個僞代碼的最後一行的精神:
enum abc { a,b,c };
// some long code of events which returns the enum's value
auto e = []()->abc{return abc::b;}();
if (e == std::declval(e)::a) { ...
如果無法在C++11
將它變成可能在C++14
或17?
您不必使用枚舉的名稱,除非它是一個'枚舉class'。你可以簡單地使用'if(e == a)' –
缺少'class'原來是bug。 –