如何将指针转换为我在 C++ 中输入的类型?

How can I transform a pointer to the type I input in C++?

我有一个问题:

我想生成一个type_t指针(type_t *),指向一个内存块,其中存储指定的值。

换句话说,它的输入是:

我不知道该怎么做。我尝试使用模板,但我认为它需要 'type',而不是“字符串类型”。我唯一的想法是用这些信息生成一个新的 cpp 文件并用它来实现。但是当我想生成大量值时,这很尴尬...

我在深入研究 clang 工具时想到了这个问题,手上有 QualType 和二进制值,我想恢复原始值。我尝试使用Expr或VarDecl中的构造函数,但未能实现我的目标。

谁能提供一些想法?非常感谢您阅读此消息。


非常感谢您的努力!我想我应该用一些代码让问题更清楚

我的目标是编写这样的函数

type_t* func(QualType type_t, string value) 
{ /* some magic here */}

或者也许

type_t* func(string type_t, string value) 
{ /* some magic here */}

听起来不可能,因为在确定输入 QualType 之前甚至都没有确定类型。

当然void*用作中间件是个好主意,我仍然想知道我怎么写

type_t* func(string type_t, void* memory_block) 
{ /* some magic here */}

我认为问题与以下问题相同:我们如何输入类型消息并使用该类型输出一些值(可能已经存在)?

再次感谢。

您可以使用空指针来转换任何类型的指针。如果你提供你想做的事情的脚本,请告诉我 works.IT 会很棒

c 或 c++ 中未提供此类功能。您可以在 python 中使用 exec() 来实现。 解决这个问题的一件事是预先声明一些与要传递的字符串同名的变量。