Почему объявление enum должно быть отмечено const? Я видел эту конструкцию в проекте, в котором я работаю: const enum SomeEnum { val0, val1, val2 }; Какова цель const здесь? Ответ 1 Ничего. На самом деле, согласно g++, это ошибка компилятора: error: qualifiers can only be specified for objects and functions Однако, в C разрешено, но бесполезно. GCC говорит: warning: useless type qualifier in empty declaration Проблема заключается в том, что const применяется только к объектам (переменным) и функциям-членам, но не к базовым типам. Ответ 2 Это не влияет на ваш код, но в этом случае: const enum SomeEnum { val0, val1, val2 } VAL0 = val0; Здесь VAL0 будет переменной const (со значением VAL0). TBH, хотя, это не очень полезно.
Ответ 1 Ничего. На самом деле, согласно g++, это ошибка компилятора: error: qualifiers can only be specified for objects and functions Однако, в C разрешено, но бесполезно. GCC говорит: warning: useless type qualifier in empty declaration Проблема заключается в том, что const применяется только к объектам (переменным) и функциям-членам, но не к базовым типам.
Ответ 2 Это не влияет на ваш код, но в этом случае: const enum SomeEnum { val0, val1, val2 } VAL0 = val0; Здесь VAL0 будет переменной const (со значением VAL0). TBH, хотя, это не очень полезно.