Вопросы по теме 'spaceship-operator'

Почему оператор космического корабля имеет только один знак равенства?
Почему для оператора космического корабля <=> был выбран один знак равенства, а не два? Считается ли это несовместимым с тем, что один знак равенства обычно означает присваивание, а два — сравнение?
521 просмотров
schedule 26.06.2022

Как связать оператор космического корабля groovy для многоуровневой сортировки?
В Groovy есть оператор космического корабля <=> , который обеспечивает простой способ реализации сравнений. Как я могу связать его более плавным образом, чем код ниже? В этом примере я хочу сначала сравнить товары по цене, а затем по имени,...
1825 просмотров
schedule 19.08.2023

Чем оператор трехстороннего сравнения отличается от вычитания?
В C ++ 20 появился новый оператор сравнения <=> . Однако я думаю, что в большинстве случаев хорошо работает простое вычитание: int my_strcmp(const char *a, const char *b) { while (*a == *b && *a != 0 && *b != 0) {...
11617 просмотров

Трехстороннее сравнение заменяет все остальные операторы сравнения, кроме ==?
В g ++ 10 я пытаюсь использовать трехстороннее сравнение просто для эксперимента. Я читал, что другие операторы больше не нужны (кроме ==). Но даже если я могу использовать оператор (он реализован в компиляторе), он не заменяет (и не...
151 просмотров
schedule 04.12.2023

Переписаны операторы сравнения и шаблоны выражений.
У меня есть библиотека конечного объема, на которую сильно повлиял openfoam , что позволяет писать решение задач механики сплошных сред на C++ так же, как на бумаге. Например, чтобы решить уравнение Навье-Стокса для несжимаемого ламинарного...
207 просмотров

Почему оператор космического корабля не позволяет мне выполнять операцию равенства, но разрешает операции неравенства?
Кто-нибудь знает, почему я получаю ошибку компилятора для операции равенства в классе, который имеет переопределение трехстороннего оператора? Я использую VS 2019. class Rectangle { public: constexpr Rectangle(const int width, const int...
50 просмотров
schedule 23.08.2022

Трехсторонний оператор ‹=› структура возврата с неявной функцией преобразования
Рассмотрим следующий бесполезный код: struct S{ constexpr operator int() const { return 0; } constexpr auto operator<=>(S) const { return *this; } }; static_assert(S{} <= S{}); Clang и MSVC принимают этот код, но GCC отклоняет...
164 просмотров