Можно ли выбрать параметр универсального типа C ++ во время выполнения?

Есть ли способ выбрать универсальный тип класса во время выполнения или это время компиляции в C ++?

Что я хочу сделать, это что-то вроде этого (псевдокод):

Generictype type;
if(somveval==1)
    type = Integer;
if(someval==2)
    type = String;

list myList;

Возможно ли это в C ++? и если да, то как?