在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。 –