Сильный порядок в C++
Полная заменяемость при равенстве - случай для std::strong_ordering. Тип подходит, когда любые два различных значения всегда упорядочены и равенство означает полную заменяемость.
Тип возвращаемого значения пишут явно
в объявлении operator<=>. Запишем
Meter с одним целым и выведем
сравнение через >:
#include <compare>
#include <iostream>
struct Meter {
int units;
std::strong_ordering operator<=>(const Meter& other) const {
return units <=> other.units;
}
};
int main() {
Meter big{50};
Meter small{12};
std::cout << (big > small) << "\n";
return 0;
}
Создайте struct Index с int pos
и operator<=>, возвращающим
std::strong_ordering. Выведите
1, если 10 больше 3.