Есть ли способ во время компиляциипроверить, что данный значение находится в пределах значений данного перечисления, таким образом, действительно?
enum myenum { val1 = 10, val2 = 30, val3 = 45 }
template <myenum t>
class myClass
{ ... }
myClass<10> a; // fails, OK
myClass<val1> b; // compiles OK
myClass<myenum(24)> c; //compiles, NOT OK!
Здесь было бы полезно использовать второй логический параметр нетипового шаблона, а значение этого логического значения было бы задано метафункцией, которая, учитывая значение, проверяла бы, что значение находится в пределах значений myenum.
Я просмотрел различные вопросы, связанные с перечислением, например, как повторить перечисление, и кажется, что это невозможно сделать.