Я хочу иметь карту с однородным типом ключа, но с разнородными типами данных.
Я хочу иметь возможность сделать что-то вроде (псевдокод):
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 раньше, но смотрел библиотеку fusion, но не могу понять, что мне нужно делать.
Спасибо за вашу помощь.