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の項目数 };
ただ、この項目を列挙の値として利用してもエラーとはならないので、間違えないように注意しないといけない。