ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

enumの項目数を取得する

enumの項目数を取得するにはC#では次のようにしてできる。

public class Hello{
    enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};  
    public static void Main(){
        int num = System.Enum.GetNames(typeof(Days)).Length; // enumの項目数を取得
        System.Console.WriteLine(num);
    }
}

実行結果
7

ところがC++ではどのように取得すればいいか分からない。取得する方法はあるのだろうか。いまのところは、enumの最後に最大値を表わす項目を追加して対応している。

enum Test {
    One,
    Two,
    Three,
    Max // enumの項目数
};

ただ、この項目を列挙の値として利用してもエラーとはならないので、間違えないように注意しないといけない。