gpt4 book ai didi

c++ - ExprTk 中的简单数学表达式

转载 作者:IT老高 更新时间:2023-10-28 22:28:24 27 4
gpt4 key购买 nike

我正在尝试使用如下所示的简单表达式,结果应该是 z 的值变为 1。但是似乎没有发生任何关于如何解决此问题的建议?

template<typename t>
void MyTestB()
{

t x = 1.0;
t z = 0;

std::string e = "if((x + 2) == 3){z=1;}";
exprtk::symbol_table<t> symbol_table;
symbol_table.add_variable("x",x);
symbol_table.add_variable("z",z);

exprtk::expression<t> expression;
expression.register_symbol_table(symbol_table);


exprtk::parser<t> parser;

parser.compile(e,expression);
t y = expression.value();
std::cout << z;
}

程序确实在 y = NAN 处结束(这是可以理解的,因为表达式是一个条件语句)但是 z 仍然保持为 0。我原以为它会变成 1

最佳答案

the examples ,看来 if 语句应该具有以下形式:

if(条件,表达式为真,表达式为假)

此外,赋值使用 := 而不仅仅是 =。所以你应该使用字符串:

if((x + 2) == 3, z := 1, 0)

关于c++ - ExprTk 中的简单数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875608/

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