gpt4 book ai didi

c++ - 根据需要组装一个函数并快速计算

转载 作者:可可西里 更新时间:2023-11-01 16:35:39 26 4
gpt4 key购买 nike

有一些解释性语言,例如 Lisp、Tcl、Perl 等,可以很容易地在运行时在您的代码中定义 lambda/proc/sub 并在同一 session 中对其进行评估。

C++ 等编译语言的执行速度比解释语言快得多,但在运行时在编译程序中定义一个函数并执行它并不容易,如果可能的话。

这里的问题是做以下事情:

  1. 在运行时定义一个函数:例如,根据初始输入数据导出数据的分析模型。

  2. 在循环中快速执行上述功能:例如,应用派生的分析模型来分析传入的数据。

我看到的一个解决方案不是很漂亮:

  1. 表示分析模型的过程是基于初始输入数据在嵌入式 Tcl 中导出的。

  2. 通过在样本点数组上评估 Tcl 中的过程创建了一个查找表,乐观地说,这些样本点将覆盖适用范围。

  3. 查找表从 Tcl 解释器传回二进制文件(用 C++ 开发)。

  4. 然后通过在查找表中“足够接近”的值之间进行插值来分析传入数据。

上述解决方案有效,但在概念和计算方面存在不少问题。因此问题是:是否可以纯粹在 C++ 中定义一个函数并使其可用于在同一运行时 session 中执行?

从概念上讲,是否可以做一些事情,比如创建一个函数作为字符串,在内存中编译它,然后以某种方式将它链接回正在执行的二进制文件?

最佳答案

如果您想要开箱即用的功能,请查看 ExprTK .如果您想自己编写表达式解析器,请查看 Boost Spirit .

另一种方法是动态创建 C++ 代码,将其编译为共享库(插件)并在运行时加载。这可能是最快的解决方案。

关于c++ - 根据需要组装一个函数并快速计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com