Bir enum sürekli olup olmadığını C ++ 11 denetlemek için bir yolu var mı ?
Olmayan bir enum değerleri vermek tamamen geçerlidir. Enum sürekli olup olmadığını kontrol etmek için C ++ 14, C ++ 17 veya belki C ++ 20'de bir tür özelliği gibi bir özellik var mı? Bu, static_assert içinde kullanılacak.
Küçük bir örnek şöyle:
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
. Ne yazık ki bir günlük işim var, bu yüzden bu yaklaşımı temel alan bir cevabı iptal edeceğim. Eminim @barry veya @sehe gibi biri bunu yapabilir.
static_assert
)? "Güzel bir çözüm" yapamasanız bile, yine de genel olarak nasıl yapılabileceğini merak ettiğim için bir cevap yazın.