Заполните массив с помощью Constexpr во время компиляции
Я хотел бы заполнить массив перечислений с помощью constexpr. Содержимое массива следует определенной схеме.
У меня есть перечисление, разделяющее набор символов ASCII на четыре категории.
enum Type {
Alphabet,
Number,
Symbol,
Other,
};
constexpr Type table[128] = /* blah blah */;
Я хотел бы иметь массив из 128Type
, Они могут быть в структуре. Индекс массива будет соответствовать символам ASCII, а значение будетType
каждого персонажа.
Поэтому я могу запросить этот массив, чтобы узнать, к какой категории относится символ ASCII. Что-то вроде
char c = RandomFunction();
if (table[c] == Alphabet)
DoSomething();
Я хотел бы знать, возможно ли это без каких-либо длительных макросов.
В настоящее время я инициализирую таблицу, выполнив следующее.
constexpr bool IsAlphabet (char c) {
return ((c >= 0x41 && c = 0x61 && c