c++11
コードでは、enum値を使用するたびに特定のenum修飾子に言及しないようにしてください。新しいコードで多くのリファクタリングが行われます。 C++11
でenum型のハードコーディングを避ける
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++14
または17で可能になります。そのために
が、それは、この擬似コードの最後の行の精神で何か可能ですか?
あなたはそれが '列挙class'でない限りenumの名前を使用する必要はありません。単純に 'if(e == a)'を使用することができます –
'class'が見つからないことがバグであることが判明しました。 –