Поскольку C ++ - это статически типизированный язык, вы не можете сделать это простым способом. Вы не можете определять типы во время выполнения, они фиксируются, как только ваша программа была скомпилирована.
Самое близкое, что вы можете получить для своего случая IMHO, использует что-то вроде boost::variant
или boost::any
.