gpt4 book ai didi

c++ - vector 中存储的表达式的惰性求值

转载 作者:行者123 更新时间:2023-11-30 02:00:20 27 4
gpt4 key购买 nike

为简单起见,我将粗俗化整个问题。

我正在研究仅使用运算符 OR 和 AND 的 bool 算术(目前)。

我的 bool 表达式存储在一个 vector 中,交替使用一个变量和一个运算符(类似于 [a, ||, b] 表示“a OR b”)。

我想知道是否可以像我写的那样链接回我的 vector :

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++ 评估器。我想我可以重载运算符来处理简单的表达式,但是一旦出现括号,我就卡住了。

如果这个问题已经被问到并得到回答,我深表歉意,我只是不知道在我的搜索中使用什么关键字!

提前谢谢你,即使只是一个线索也很好:)

最佳答案

您可以使用表达式模板来执行此操作。您的某些 bool 文字必须类似于 bool_(true) 以使用适当的运算符创建自定义对象,但除此之外,就好像您真的使用了 C++。

当然,通常只使用 lambda 或为此编写一个函数会更简单,除非您需要在运行时内省(introspection)/修改树或类似的东西。

关于c++ - vector 中存储的表达式的惰性求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15250042/

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