我为JavaScript编写了一个复杂的数学库,它具有从人类可读的数学表达式字符串生成函数的能力。有没有办法在C ++中实现等效的运行时生成函数?
答案 0 :(得分:3)
您可以执行C ++编译器,让它生成一个共享库并将其加载到您的程序中以在运行时运行C ++代码。请注意,细节取决于您正在使用的平台,因为Windows和POSIX具有不同的加载共享库的机制。
答案 1 :(得分:3)
FUZxxl的答案是对的,我建议您查看Clang/LLVM工具。
有一个基本的(不太有用)教程file here。关于撰写Language on LLVM的广泛教程。您可以在C ++应用程序中加载生成的库。
除非您有一个性能关键组件,否则您可以使用ChaiScript (注意:我与其或作者无关)
答案 2 :(得分:0)
编译语言方式'是定义你的语法,构建一个解析器,一个AST(抽象语法树)并解释/编译它。当你这样做时,你实际上是在编写自己的编译器/解释器,这很有趣。如果你想让它轻松工作,你可以看看提升精神。