C ++ - 为基本类型创建反射

时间:2015-11-19 03:19:27

标签: c++

我正在寻找一种优雅的方式来为原始类型创建反射。 比方说我有一个string type = "float";是否有办法创建一个没有if语句的浮点数?也许使用地图或什么?

我一直在玩它,我似乎无法找到一个好方法。

我想将所有原始类型映射到一个地图,如int,float,double等,并简单地使用map [string]在朗姆酒时创建类型,它可以指向函数或类或其他任何东西。

问题是,我如何在地图中使用多种类型?即使我使用Base类并推入模板化派生类,如果我想向下转换它,我必须在编译时知道模板类型。我被困了!

任何帮助将不胜感激。

编辑:

要清除我在二进制文件中的字符串类型,数据和数据类型的大小,数据是序列化的。我只需要通过调用实例auto x = class->Create();

找到自动创建数据的方法

和Create函数反序列化二进制文件中的一些数据。由于我已经知道了类型,例如可能是浮点数,我只需要找到一种方法来创建该类型的数据,例如:

decltype(map[string]()) myType; //map[string] could for instance hold a function pointer which returns a float if the string=float, or an int if string=int
memcpy(some data from binary file into myType).

我想的越多似乎不可能,但我希望我错了。 最好的祝福 XX

0 个答案:

没有答案