我想用一个“泛型”值映射一个键,我的意思是它可以是int,float,char,string等等。
特别是我要这样做,因为我在模型中接收转换后的CAN数据,可能的类型是(当前)int,float和string。
第一个想法是创建一个可以以不同方式实现的抽象对象(每个设备类型一个),然后将其放在容器中(地图或集合)。
我认为将它作为“通用类型”的值更轻,更高效,因此当数据来自CAN总线时,容器将自动构建而无需创建新的特殊对象。
目前我尝试以这种方式使用unordered_map:
std::unordered_map<std::string, std::any> devicesMap;
但我意识到它只能在c++17版本的C ++中使用。
我想知道这种情况是否有一个好的解决方案。