Информация об изменениях

Сообщение Re[11]: Имя истинного врага - миссионеры. от 16.08.2025 17:29

Изменено 16.08.2025 19:54 rg45

Re[11]: Имя истинного врага - миссионеры.
Здравствуйте, 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 и week ordering.
Re[11]: Имя истинного врага - миссионеры.
Здравствуйте, 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.