2013-06-04 2 views
0

Имея что-то вроде этого (например):Проверьте значения перечислений по меткам

enum { 
    label1, 
    label2, 
    //label3, 
    label4, 
    total} 

Можно ли проверить, все ли этикетки присутствуют?

Мне нужно значение total для создания матриц нужного размера, но вам нужно знать, какая из этикеток присутствует в списке, чтобы выполнять операции, относящиеся к каждому элементу.

+1

Не совсем возможно в некотором смысле, что вы не можете сделать Enum :: label3 == undefined. Используйте список строк или умный класс Enum – dchhetri

+0

Звучит как переименование, возможно, не лучшее, что можно использовать в вашей ситуации. –

ответ

1

Попробуйте это:

enum My_Labels 
{ 
    label1, 
    label2, 
    // label3, 
    label4, 
    total 
}; 

static My_Labels check1 = label1; 
static My_Labels check2 = label2; 
static My_Labels check3 = label3; 
static My_Labels check4 = label4; 

Вы должны получить ошибку компиляции для любых недостающих элементов.

Также, если вы забыли label3, значение label4 изменится.

Смежные вопросы