У меня есть шаблон, который я хочу вызвать с соответствующим типом объекта без необходимости разбора строкового идентификатора / enum / typeid.name () и т. Д.
То есть вместо:
switch(varType)
{
case TYPE_ONE:
templateFunction<TYPE_ONE>();
break;
case TYPE_TWO:
templateFunction<TYPE_TWO>();
break;
...
etc...
}
Я бы предпочел использовать:
templateFunction<GetTypeFromEnum(MyEnum::INT)>();
или еще лучше:
templateFunction<GetTypeFromString("int")>();
Что-то похожее на перевернутый typeid?
Мне действительно удалось сделать это однажды в VBA, поэтому я думаю, что это должно быть выполнимо в C ++ ...