gpt4 book ai didi

c++ - 是否可以定义稍后可以评估的 bool 表达式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:24 24 4
gpt4 key购买 nike

希望实现一种动态表达式,稍后我可以在调用时计算 bool 值。

condition &&= condition2; //not evaluated just yet
condition ||= condition3;

if (condition) //evaluated now
do this;
else
do this;

例如,我在我的代码中使用相同的条件,如果我可以只调整一个语句或添加更多语句,即使在程序运行时也会更容易。

conditions = (x>50 && y>200) && (type == MONKEY);
conditions &&= (x<75 && y<250);

稍后在代码中

if (conditions)
cout<<"Hello!";

编辑:应在 if 语句中评估条件。

最佳答案

在使用 && 和 & 时要非常小心


原因一

扩展假设(并且在句法上无效)

condition &&= condition2;

condition = condition && condition2;

揭示了一个微妙之处:如果 conditionfalsecondition2被评估。


原因二

&&& 对于整数类型也有不同的行为,例如0b01 & 0b1000b01 && 0b10true (这里我使用的是 C++14 二进制文字)。


结语

所以我更喜欢压缩

if (condition = condition && condition2){
// do this
} else {
// do this
}

其中 condition2 仅在 conditiontrue 时计算

关于c++ - 是否可以定义稍后可以评估的 bool 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44673268/

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