私たちが知っているように、C++03 は連続していない可能性があるenumため、C++03 でのインクリメントとデクリメントは違法です。enumしかし、C++11 標準では新しいenum class構造が導入されました。ウィキペディアによると、単純な可算型で構築されていないため、より型安全です。さて、列挙型の値の制限付きリストがある場合、次のように書くことができますか
enum class Colors { Black, Blue, White };
// ...
Colors color = Colors::White;
color++;
それは正しく機能しますか (たとえば、 will return のインクリメントとWhitewill returnのBlackデクリメント)?BlackWhite
そのようなコードを書くことができない場合、この機能を提供する振る舞いのようなクラスを知っていますboostか?Qt