#  数学表达式-cpp 更新日志
## 更新版本:1.0.2 -> 1.0.3
* 更新版本: 1.0.2 -> 1.0.3
* 更新时间: 2024年01月08日
* 参与更新任务的作者列表
| 名称 | GitHub主页 | 联系方式 |
|----------------|-----------------------------------|-------------------|
| BeardedManZhao | https://github.com/BeardedManZhao | liming7887@qq.com |
| ------ | ------ | ------ |
## 注意事项
1.0.2 以及 以后的版本中 针对函数的注册操作不能向后兼容,如果是在1.0.2版本以以后的版本 请使用下面的方式注册函数
```
// 准备函数 这里的函数的作用是将 3 个参数求和
auto myFun = [](const ME::MEStack<double>& v) {
double res = 0;
for (int i = 0; i < v.size(); ++i){
res += v.get(i);
}
return res;
};
// 注册函数 将我们的函数注册成为 DoubleValue 的名称
ME::FunctionManager::append("sum", myFun);
```
## 更新日志
在旧版本中,针对 `2*-1` 这类的计算操作会发生一些异常,因此在这里我们进行了修复,本次修复不会影响任何操作,也不会带来任何不良影响,下面是旧版本中出现错误的代码,本次更新将修复此问题。
```c++
#include <mathematical_expression.h>
#include "FunctionManager.h"
#include "Utils.h"
int main() {
system("chcp 65001");
// 构建一个数学表达式,表达式中使用到了函数 DoubleValue
string s = "2 * -1";
// 获取到 数学表达式解析库
mathematical_expression me;
// 获取到函数表达式计算组件
auto functionFormulaCalculation = me.getPrefixExpressionOperation();
// 检查数学表达式
functionFormulaCalculation.check(s);
// 计算出结果
ME::CalculationNumberResults results = functionFormulaCalculation << s;
// 将结果打印出来
cout << "计算层数:" << results.getResultLayers() << "\t计算结果:" << results << "\t计算来源:" << results.getCalculationSourceName() << endl;
}
```