C++飞船运算符多级比较?
新的 C++20 宇宙飞船运算符是否允许以简洁的方式表达短路多标准比较?比这更好的东西:
const firstCriteriaComparisonResult = lhs.x <=> rhs.x;
return firstCriteriaComparisonResult != 0 ? firstCriteriaComparisonResult : lhs.y <=> rhs.y;
回答
通常的tie-and-compare 方法也适用于宇宙飞船:
return std::tie(lhs.x, lhs.y) <=> std::tie(rhs.x, rhs.y);