是否有可能将字符串变量解析为 C++ 中的实际代码行?例如,这个字符串 "x=0"
能否被解析为实际代码并将 x
(程序中的某个随机变量)的值设置为零?我打算用它做的是我想用 C++ 制作一个简单的绘图仪。用户输入函数(该函数将根据 x
和 y
并将值为零)以绘制为字符串(如 2*y +x
),然后将其转换为代码对象,然后使用循环进行相应的评估。
最佳答案
因为 C++ 是一种编译和链接的语言,所以它不适合即时评估。
但我通过 embedding a Python interpretter 实现了与您过去使用 C++ 的目标类似的目标。将 Python 代码作为字符串即时计算并将结果传递给 C++ 代码。
其他一些可以嵌入到 C++ 程序中的流行脚本语言是 Lua和 Squirrel .
在 Java 中,我通过嵌入 Groovy interpretter 来完成同样的工作.
您需要通过“嵌入”将脚本语言解释器集成到您的代码中,然后通过“marshaling”过程将值从脚本语言代码传递到您的 C++ 代码
如果您真的想要可以解释的 C++ 语法,理论上可以为子集开发一个动态解析器和解释器语言,但 C++ 是一种复杂的语言,这样的任务将是一项艰巨的任务,充满困难,本质上是使用错误工具完成工作的情况。
关于c++ - 将字符串解析为 C++ 中的一行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607281/