열거 형이 연속적 인 경우 C ++ 11을 확인하는 방법이 있습니까?
열거 형 값을 제공하지 않는 것이 유효합니다. C ++ 14, C ++ 17 또는 C ++ 20에 유형 특성과 같은 기능이 열거 형이 연속적인지 확인할 수 있습니까? 이것은 static_assert에서 사용됩니다.
작은 예는 다음과 같습니다.
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
. 슬프게도 나는 하루의 직업을 가지고 있으므로이 접근법을 기반으로 답변을 공언하지만 이것을 쓸 수는 없습니다. @barry 또는 @sehe와 같은 누군가가 할 수 있다고 확신합니다.
static_assert
) 어떻게 할 수 있습니까? "아름다운 해결책"을 만들 수없는 경우에도 일반적인 방법으로 어떻게 할 수 있는지 궁금해서 답변을 작성하십시오.