如何将数学表达式转换为C++中的lambda函数?

问题描述 投票:0回答:1

我正在尝试将数学表达式字符串转换为 C++17 中的 lambda 函数。我怎样才能用函数进行这种类型的转换?

std::function<void()> str2lambda(const std::string& str) {
    // Conversion
    // return lambda function
}

示例:

输入数学函数:
“x^2+1”

输出 Lambda 函数:

auto func = [](float x) -> float { return pow(x, 2) + 1; }; 

c++ function parsing lambda c++17
1个回答
0
投票

就目前情况而言,这是不可能的,因为函数的返回类型取决于运行时参数 - 编译器无法确定函数的返回类型是什么。

另一方面,但略有相关的注释,cppcon23 中有一个关于符号演算的讨论,涉及如何在 C++ 中表示符号和表达式:https://www.youtube.com/watch?v=lPfA4SFojao

© www.soinside.com 2019 - 2024. All rights reserved.