#include <iostream>
struct a {
enum LOCAL_A { A1, A2 };
};
enum class b { B1, B2 };
int foo(int input) { return input; }
int main(void) {
std::cout << foo(a::A1) << std::endl;
std::cout << foo(static_cast<int>(b::B2)) << std::endl;
}
Các a::LOCAL_A
là những gì các enum gõ mạnh đang cố gắng để đạt được, nhưng có một sự khác biệt nhỏ: enums bình thường có thể được chuyển đổi thành kiểu số nguyên, trong khi enums gõ mạnh không thể làm điều đó mà không có một dàn diễn viên.
Vì vậy, có cách nào để chuyển đổi một giá trị enum được gõ mạnh thành một kiểu số nguyên mà không cần cast? Nếu có, làm thế nào?