Я хочу иметь карту, которая имеет однородный тип ключа, но разнородные типы данных.как вы делаете гетерогенный boost :: map?
Я хочу быть в состоянии сделать что-то вроде (псевдо-код):
boost::map<std::string, magic_goes_here> m;
m.add<int>("a", 2);
m.add<std::string>("b", "black sheep");
int i = m.get<int>("a");
int j = m.get<int>("b"); // error!
я мог бы иметь указатель на базовый класс как тип данных, но не хотелось бы.
Я никогда не использовал boost раньше, но посмотрел библиотеку слияния, но не мог понять, что мне нужно делать.
Благодарим за помощь.
`boost :: variant` – 2014-02-10 22:41:55
Если вы знаете все возможные типы, которые вы можете захотеть запечатлеть на карте, тогда` boost :: variant` будет отлично работать. Если вы хотите буквально любого типа, то `boost :: any` - это путь. – Kurt 2014-03-07 05:21:58