У меня есть перечисление, как это: (На самом деле, это класс перечисления)ЬурейиХ и перечисление или перечисление класс
enum class truth_enum {
my_true = 1,
my_false = 0
};
Я хотел бы иметь возможность подвергать my_true глобального пространства имен, так что я могу сделать это:
char a_flag = my_true;
Или, по крайней мере:
char a_flag = (char)my_true;
Вместо этого:
char a_flag = truth_enum::my_true;
Возможно ли это?
Я пытался что-то вроде этого:
typedef truth_enum::my_true _true_;
Я получаю ошибку: my_true в классе перечисление truth_enum не называет тип
Я предполагаю, что my_true это значение не является типом. Есть ли альтернатива, которую я могу сделать, чтобы включить эту функцию в мои программы?
Не идеально, но я мог бы сделать что-то вроде:
enum class : const char { ... };
const char const_flag_false = truth_enum::my_false;
Хм ...
Если вы используете класс enum, вы не можете избежать написания префикса. многословие не является проблемой, если это не препятствует читаемости. – yngccc
Перечислитель класса enum не подразумевает конвертацию в целое число, поэтому 'char a_flag = my_true;' в любом случае ошибочен. –
Я использовал преобразование выше – user3728501