Re[11]: Имя истинного врага - миссионеры.
От: rg45 СССР  
Дата: 16.08.25 17:29
Оценка: +1
Здравствуйте, serg_joker, Вы писали:

_>и есть у меня код:

_>
_>if (s1 > s2) { ... }
_>


_>вот ты бы хотел, чтобы условие разворачивалось в (!(s1 < s2 ) || (s1 == s2)) с удвоением сложности?

_>или чтобы нужно было писать gteaterthan(s1,s2) ?

Зачем? Имея два оператора: == и <, остальной набор операторов компилятор мог бы сгенерировать автоматически безо всякого удвоения сложности:

bool operator != (const T& a, const T& b) { return !(a == b);}
bool operator > (const T& a, const T& b) { return b < a;}
bool operator <= (const T& a, const T& b) { return !(b < a);}
bool operator >= (const T& a, const T& b) { return !(a < b);}


по крайней мере, для total и weak ordering.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 16.08.2025 19:54 rg45 . Предыдущая версия . Еще …
Отредактировано 16.08.2025 17:56 rg45 . Предыдущая версия .
Отредактировано 16.08.2025 17:29 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.