Можно ли использовать массив constexpr переменного размера в операторе switch, чтобы каждый аргумент [i] был регистром? или являются ли if-заявления единственным решением.
constexpr int arr[] = {35, 2, 234, 42, ..., N}; // <------ Random ints
constexpr int size = sizeof(arr)/sizeof(arr[0]); // <----arbitrary number of elements in array
// want to achieve something like this
switch (var) {
case inArray(var): /* Checks if the var is in the array. Cannot be done at
compile time due to runtime var. Thats why I was looking for a workaround where the switch accepted a range of array values
then expanded it automatically upon compilation */
// other cases
}
Извините, просто чтобы уточнить Я ищу функцию, похожую на «диапазоны падежей», которая предоставляется некоторыми компиляторами, когда они создают для вас операторы падежей. Я знаю, что компилятор будет знать размер во время компиляции. В моем приложении этот размер будет часто меняться. Я отредактировал мой код выше, чтобы лучше отразить логи c, к которым я иду.