我有一个经常出现的代码块,我循环遍历所有成员enum class.
for与新的相比,我目前使用的循环看起来非常笨拙range-based for.
有没有办法利用新的C++ 11功能来减少当前for循环的详细程度?
我希望改进的当前代码:
enum class COLOR
{
Blue,
Red,
Green,
Purple,
First=Blue,
Last=Purple
};
inline COLOR operator++( COLOR& x ) { return x = (COLOR)(((int)(x) + 1)); }
int main(int argc, char** argv)
{
// any way to improve the next line with range-based for?
for( COLOR c=COLOR::First; c!=COLOR::Last; ++c )
{
// do work
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
换句话说,如果我可以做以下事情会很好:
for( const auto& c : COLOR )
{
// …Run Code Online (Sandbox Code Playgroud)