Есть такая функция(?), которая возвращает имя типа переменной
Пример:
#include <typeinfo>
#include <iostream>
class MyClass
{};
int main()
{
int i=0;
MyClass a;
std::cout << typeid(i).name() << std::endl;
std::cout << typeid(a).name() << std::endl;
return 0;
}
Итог:
i
7MyClass
Как видно для int она вернула i, и это удобно т.к. для варианта в switch переменная типа char отлично подходит. А вот для класса она вернула полное его Название и количество буков в нём, а это уже не хорошо т.к. для запихивания в свич строка не подходит, поэтому нужно вернуть номер, но как?
P.S. Сравнение строк не пройдёт - производительность упадёт во много раз, что критично для выполнения в реальном времени.