C++ C++;-为基元类型创建反射

C++ C++;-为基元类型创建反射,c++,C++,我正在寻找一种为基本类型创建反射的优雅方法。 例如,假设我有一个string type=“float”有没有办法在没有if语句的情况下创建浮点?也许用地图什么的 我一直在玩弄它,似乎找不到好办法 我想把所有的基本类型映射到一个像int、float、double等的映射中,然后在rumtime用map[string]创建这个类型,它可以指向一个函数、一个类或其他任何东西 问题是,我应该如何在地图中使用多个类型?即使我使用基类并推入模板化派生类,如果我想向下转换它,我也必须在编译时知道模板类型。我卡

我正在寻找一种为基本类型创建反射的优雅方法。 例如,假设我有一个
string type=“float”有没有办法在没有if语句的情况下创建浮点?也许用地图什么的

我一直在玩弄它,似乎找不到好办法

我想把所有的基本类型映射到一个像int、float、double等的映射中,然后在rumtime用map[string]创建这个类型,它可以指向一个函数、一个类或其他任何东西

问题是,我应该如何在地图中使用多个类型?即使我使用基类并推入模板化派生类,如果我想向下转换它,我也必须在编译时知道模板类型。我卡住了

任何帮助都将不胜感激

编辑:

为了clearify,我在一个二进制文件中以字符串的形式获得了类型、数据和数据类型的大小,数据被序列化。我只需要找到一种方法,通过调用例如
autox=class->create()来自动创建数据

Create函数反序列化二进制文件中的一些数据。因为我已经知道该类型,例如可能是一个float,所以我只需要找到一种从该类型创建数据的方法,例如:

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

也许是你想要的。是的,我知道,但也许除此之外的任何其他选项都很好,boost没有错,但我想了解一下这个主题。比如说有一种方法可以“创建一个没有if语句的float”,如果类型列表是固定的,那么在没有if语句的情况下,您实际如何使用它呢?如果类型列表是固定的,您可能更喜欢
boost::variant
方法(一种有区别的联合,而不是
boost::any
的基于RTTI的方法)。另外,什么样的接口真正方便在很大程度上取决于您对immibis上述问题的回答。请显示更详细的伪代码。不要担心正确性,要担心可读性
memcpy(我在其他变量中存储的obj中的一些数据)
完全不清楚。创建一个存储在地图中的对象类型,接下来要做什么?