Можно ли инициализировать константу класса enum вне класса?

Есть enum:

enum :int {OneCop , FiveCops, TenCops, FivtyCops, One, Two, Five, Ten, Fivty, Hundred, FiveHundereds, Tousand, FiveTousand};

Можно ли инициализировать переменные вне "enum", те как-то так:

enum :int {OneCop , FiveCops, TenCops, FivtyCops, One, Two, Five, Ten, Fivty, Hundred, FiveHundereds, Tousand, FiveTousand};
   OneCop = 0;

У меня при попытке подобного пишет: "expression must be a modificated lmalue"


Ответы (2 шт):

Автор решения: 300 bucks

Нельзя. Весь смысл enum-а это мапнуть константный числовой массив в какие-то человекочитаемые названия.

И ещё лучше использовать enum class

→ Ссылка
Автор решения: user7860670

Тут имеется фундаментальное непонимание енумераторов. Идентификаторы, перечисляемые внутри енумераторов, не являются полями, как в структурах или классах. Они существуют только во время компиляции и не присутствуют в памяти программы, нельзя получить их адрес или ссылаться на них. При их использовании получается выражение категории prvalue, аналогично встроенным литералам. И значение для них должно идти сразу и являться константным выражением.

enum Cops:int {OneCop = 0, FiveCops = 1,
→ Ссылка