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