我正在寻找用C++
编写的便携式轻量级库的建议,这些库支持数学和业务规则表达和评估。我了解C++
在STL
中没有提供此类功能。
基本要求如下:
要评估的表达式将由数字和字符串以及表示数字或字符串的变量组成。
预计某些表达式每秒会被评估多次(1000-2000次),因此需要对表达式进行高性能评估。
最初是我公司的项目,我们将所有业务规则编码为从基本表达式派生的类。问题是随着表达式数量的增加,这种方法不能很好地扩展。
我已经google了,但我能找到的大多数“库”都是分流码算法的简单例子,大多数表达式解析器,在同一步骤中执行解析和评估,使它们不适合连续重新评估,以及大多数只支持数字。
我在寻找:
- 用C ++编写的库(C ++ 03或C ++ 11)
- 稳定/生产值得
- 快速评估
- Portable(win32 / linux)
- 有关构建高性能业务规则引擎的任何建议。
醇>
业务规则示例:
'rule_result =(remaining_items< min_items)和(item ==“沙滩球”)'
答案 0 :(得分:13)
请参阅C++ Mathematical Expression Library中列出的this answer。
但是,如果你真的想要速度,可以考虑直接将表达式编译为C / C ++,然后动态加载它们(共享对象/ DLL)。
答案 1 :(得分:1)