operator<=> = default компилятор строит остальные отношения порядка из одного трехстороннего сравнения. Писать operator<, operator> и остальные вручную.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpOrSy 369 of 696 menu
◀ ▶

Синтез операторов в C++

После operator<=> = default компилятор строит остальные отношения порядка из одного трехстороннего сравнения.

Писать operator<, operator> и остальные вручную не нужно - достаточно одной строки с = default для <=>. Запишем Span с двумя целыми и выведем результат <:

#include <compare> #include <iostream> struct Span { int start; int end; auto operator<=>(const Span&) const = default; }; int main() { Span left{0, 4}; Span right{0, 9}; std::cout << (left < right) << "\n"; return 0; }

Объявите struct Bounds с двумя int и operator<=> как = default. Выведите 1, если (2, 1) больше (1, 9) через >.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить