为了简单起见,我将庸俗化整个问题。懒惰存储在载体中的表达式的评估
我正在使用布尔算术只使用运算符OR和AND(现在)。
我的布尔表达式存储在一个交替变量和运算符的向量中(类似[a,||,b]代表“a或b”)。
我想知道是否有可能链回我的载体,如果我写了:
std::vector<xxx> v = {true, &&, (, false, ||, true,)};
// result = true && (false || true) = true
bool result = vector[0] vector[1] vector[2] vector[3] vector[4] vector[5] vector[6];
我知道算术评估算法存在(如分流码),但我想避免使用它们,而是使用C++评估器。 我想我可以重载操作符来处理简单的表达式,但只要括号显示我卡住了。
我很抱歉,如果这个问题已被问及回答,我只是不知道在我的搜索中使用什么关键字!
谢谢你在前进,哪怕只是一个线索将是不错:)
好问题。我也需要这个答案。 – 2013-03-06 14:44:17
或者不是+。这是XOR。 'true + true = false','true || true = true'。 – Puppy 2013-03-06 15:00:59
@DeadMG:嗯真实+真实给我。我必须错过一些东西:/无论如何,我编辑我的问题使用&&和||。 – 2013-03-06 15:32:27