相当于javascript的c ++或

时间:2019-12-06 06:02:47

标签: c++

我正在尝试实现比较器功能,并且来自JavaScript背景,试图像这样将它们链接起来:

int MyClass::compare(MyClass & other) {
  return MyClass.x.compare(other.x) || MyClass.y.compare(other.y);
}

也就是说,比较对象的x值,如果相等,则比较对象的y值。

我立即意识到这是行不通的,因为c ++中的OR函数返回的是布尔值,而不是最后一个求值。

除了从字面上编写if语句外,例如

int result = MyClass.x.compare(other.x);
if (result) {
  return result;
}

result = MyClass.y.compare(other.y);
return result;

,有一种简洁的方法可以编写此表达式吗?

0 个答案:

没有答案