Có cách nào để kiểm tra C ++ 11 nếu enum liên tục không?
Nó hoàn toàn hợp lệ để đưa ra một giá trị enum không. Có thể có một tính năng như một đặc điểm loại trong C ++ 14, C ++ 17 hoặc có thể C ++ 20 để kiểm tra là enum có liên tục không? Điều này sẽ được sử dụng trong static_assert.
Một ví dụ nhỏ sau:
enum class Types_Discontinuous {
A = 10,
B = 1,
C = 100
};
enum class Types_Continuous {
A = 0,
B = 1,
C = 2
};
static_assert(SOME_TEST<Types_Discontinuous>::value, "Enum should be continuous"); // Fails
static_assert(SOME_TEST<Types_Continuous>::value, "Enum should be continuous"); // Passes
enum
. Đáng buồn là tôi có một công việc ban ngày vì vậy không thể cố gắng viết ra điều này, mặc dù tôi sẽ đưa ra câu trả lời dựa trên phương pháp này. Tôi khá chắc chắn rằng ai đó như @barry hoặc @sehe có thể làm điều đó.
static_assert
)? Ngay cả khi bạn không thể tạo ra một "giải pháp đẹp", dù sao đi nữa, xin vui lòng viết câu trả lời vì tôi rất tò mò làm thế nào nó có thể được thực hiện theo cách chung chung.