С помощью некоторого метапрограммирования вы можете легко создать гетерогенную карту, которая может хранить любой тип из определенного набора типов. Вот пример , который делает это без стирания типа или необходимости посещать значения.