У меня есть такое перечисление: (На самом деле это класс перечисления)
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 в классе enum true_enum не называет тип
Я предполагаю, что my_true - это значение, а не тип. Есть ли альтернатива, которую я могу сделать, чтобы включить эту функцию в моих программах?
Не идеально, но я мог бы сделать что-то вроде:
enum class : const char { ... };
const char const_flag_false = truth_enum::my_false;
enum class
не преобразует неявно в целое число, поэтомуchar a_flag = my_true;
в любом случае неверен. - person Jonathan Potter   schedule 24.07.2013