可以将int(枚举)映射到类型

编程入门 行业动态 更新时间:2024-10-27 21:14:25
本文介绍了可以将int(枚举)映射到类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

让我说这个简化的例子: 我有一些代码来执行序列化和反序列化一个类... 第一个字节是枚举类型类型(他们都继承自相同基数).. eg。

lets say I have this simplified example: I have some code that does serialization and deserialization of a class... first byte is enum that encodes class type(they all inherit from same base).. eg.

Color* c; auto classType == read_byte(buffer); switch (classType) case eBlue: { c = new Blue(buffer); } case eGray: { c = new Gray(buffer) } //...

有从枚举到类型的映射的任何方式,所以我可以替换switch

is there any way to have a map from enum to type so I can replace switch

c = new enum2Type(buffer);

edit ofc我永远不会使用raw ptr IRL。:)

edit ofc I would never use raw ptr IRL.:)

推荐答案

template<typename T> T* makeColor(Buffer const& buffer) { return new T(buffer); } ... std::map<ColerEnum, Color* (*)(Buffer const&)> m; m[grayEnum] = makeColor<Gray>; ... Color* c = m[typeByte](buffer);

更多推荐

可以将int(枚举)映射到类型

本文发布于:2023-10-28 02:01:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1535173.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类型   int

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!