Сравнение по умолчанию в C++
Запись operator<=> = default просит компилятор сравнить все поля по лексикографическому правилу.
Достаточно перечислить поля в типе -
порядок сравнения совпадет с порядком
объявления. Запишем Cell с двумя
целыми и выведем результат <:
#include <compare>
#include <iostream>
struct Cell {
int row;
int col;
auto operator<=>(const Cell&) const = default;
};
int main() {
Cell a{1, 2};
Cell b{1, 5};
std::cout << (a < b) << "\n";
return 0;
}
Сделайте struct PairId с int group
и int slot, задайте operator<=>
как = default. Выведите 1,
если (0, 1) меньше (0, 2).