C++での話。 列挙型の値を、最初から最後まで順に使いたいとき。たとえばこんなとき。 enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Nov, Oct, Dec }; // JanからDecまで順に使いたい... 試しにfor文を使ってみる。 for(Month month = Jan; month <= Dec; ++month) // ... (1) { // ... } すると、++演算子がないのでコンパイルエラーに。 ++monthの代わりにmonth += 1とやってみても、またmonth = month + 1とやってみてもやっぱりだめ。ようやくmonth = static_cast(month + 1)とやってコンパイルが通り、期待通りに動いてくれた。 こんな列挙型の使い方が正しいかどうかはちょっと脇に置いて