用于评估数学/算术表达式的C ++仿函数库

时间:2012-04-11 21:10:22

标签: c++ algorithm parsing math functor

有没有人知道允许你做这样的事情的图书馆?

std::transform(vecA.begin(), vecA.end(), 
               vecB.begin(), 
               vecOutput.begin(), 
               // run-time specified expression 
               magic_functor<float>("exp(a/(b+3))") 
);

其中magic_functor是库提供的仿函数,a和b通过vecA和vecB迭代。

我可以自己想出一些东西(这样做会有很多乐趣),但最好避免重新发明轮子(我的老板也会杀了我)。花了一些时间在网上搜索,但找不到符合条件的任何东西。

它需要灵活而快速,因此只能解析字符串一次的仿函数方法(例如,在构造内部创建执行堆栈)将是理想的,但对其他解决方案开放。

1 个答案:

答案 0 :(得分:4)

有几个选项(需要一些工作,不会“开箱即用”):