c++ - 在 C++ 中就地 bool AND 和 OR?

标签 c++ boolean operators in-place

沿着这条线,在 C++ 中是否有类似于 boolean 值的就地 AND 和 OR 运算符?

bool someOk=false;
for(int i=0; i<10; i++){
  someOk||=funcReturningBoolOnSuccess(i);
}

(我知道我可以写 someOk=someOk||funcReturningBoolOnSuccess(i),但它没有那么漂亮)。

最佳答案

答案很简短:不,C++ 语法不允许这样的结构。

你必须使用:

something = something || something_else;

但是...如果您的函数在成功时返回 bool(例如,成功时返回 true)...您为什么不直接使用以下内容?

someOk = funcReturningBoolOnSuccess(i);

无论如何它都不会在失败时返回 false 吗?似乎不合逻辑。

你为什么不这样做:

bool someOk=false;
for(int i=0; i<10; i++){
  if (funcReturningBoolOnSuccess(i)) {
      someOk = true;
      break;
  }
}

效率更高:)

关于c++ - 在 C++ 中就地 bool AND 和 OR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17589797/

相关文章:

c++ - 在虚拟桌面qt中获取特定屏幕的中心

java - 将 boolean 对象数组转换为 boolean 原始数组?

带整数的 C++ boolean 值

java - 检查运算符更高优先级的方法,是否有更聪明的方法来做到这一点?

Python 运算符 (+=) 和 SyntaxError

没有动态调度开销的基类抽象方法的 C++ 习惯用法?

c++ - Firefox 在使用 https 异常时重定向我

c++ - 我可以使用带有 Visual Studio 2012 的 Windows 8 操作系统创建带有 GUI 的完整的 Vista win32 应用程序吗?

javascript - 为什么 Javascript 严格比较会这样做?

c++ - 将 'NULL' 分配给 boolean 数据类型是否可以接受?