Apakah ada cara untuk memeriksa C ++ 11 jika enum kontinu ?
Ini sepenuhnya valid untuk memberikan nilai enum yang bukan. Apakah mungkin ada fitur seperti jenis sifat di C ++ 14, C ++ 17 atau mungkin C ++ 20 untuk memeriksa apakah enum kontinu? Ini untuk digunakan dalam static_assert.
Contoh kecil berikut:
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
. Sayangnya saya memiliki pekerjaan harian sehingga tidak dapat mencoba untuk menulis ini, walaupun saya akan menjawab dengan suara keras berdasarkan pendekatan ini. Saya cukup yakin seseorang seperti @barry atau @sehe bisa melakukannya.
static_assert
)? Bahkan jika Anda tidak dapat membuat "solusi yang indah", tolong tetap tuliskan jawaban karena saya sangat ingin tahu bagaimana hal itu dapat dilakukan dengan cara yang umum.