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