Mam enum tak: (Faktycznie, jest to klasa enum)typedef i enum lub enum class
enum class truth_enum {
my_true = 1,
my_false = 0
};
Chciałbym móc wystawiać my_true do globalnej przestrzeni nazw, tak, że mogę zrobić to:
char a_flag = my_true;
Albo przynajmniej:
char a_flag = (char)my_true;
zamiast tego:
char a_flag = truth_enum::my_true;
Czy to możliwe?
Próbowałem coś takiego:
typedef truth_enum::my_true _true_;
otrzymuję błąd: my_true w klasie enum truth_enum nie nazwę typu
Domyślam się, że to nie my_true wartość typu. Czy istnieje alternatywa, którą mogę zrobić, aby włączyć tę funkcję w moich programach?
Nie idealne, ale mogę zrobić coś takiego:
enum class : const char { ... };
const char const_flag_false = truth_enum::my_false;
Hmm ...
jeśli używasz klasy enum, nie możesz uniknąć pisania prefiksu. gadatliwość nie stanowi problemu, chyba że utrudnia czytelność. – yngccc
Moduł wyliczający "klasę enum" nie pośrednio konwertuje na liczbę całkowitą, a więc 'char a_flag = my_true;' i tak jest źle. –
Użyłem konwersji powyżej – user3728501