170 похожих чатов

17 ответов

20 просмотров

это компоратор вместо набора <, >, >=, <=, ==

Space shuttle

d7d1cd
А как его реализовывать?

можно дефолтную реализацию, если типы базовые или из библиотеки: namespace { struct Person { std::string name; int age; std::strong_ordering operator<=>(Person const& other) const = default; }; TEST(SimpleTest, ThreeWayComparation) { Person p1 = { "test1", 10 }; Person p2 = { "test1", 10 }; Person p3 = { "test2", 10 }; EXPECT_TRUE(p1 == p2); EXPECT_TRUE(p1 != p3); EXPECT_TRUE(p1 < p3); EXPECT_TRUE(p1 <= p3); EXPECT_FALSE(p1 > p3); EXPECT_FALSE(p1 >= p3); } } // namespace

d7d1cd
А как его реализовывать?

Только при дефолтной реализации будет memberwise comparison, а если переопределять, к тому же, не будет оператора ==

Anatoly Shirokov
это компоратор вместо набора <, >, >=, <=, ==

вообще, вроде как приняли <=> != ==, поэтому он заменяет только <, >, <=, >=

Alexander Karaev
вообще, вроде как приняли <=> != ==, поэтому он за...

Если не дефолтный. Там мотивация, мол, если переопределён, то == может быть неэффективным

Liber Azerate
Если не дефолтный. Там мотивация, мол, если переоп...

то есть если сделать <=> = default, то == тоже сгенерируется? видимо, я не так запомнил, потому что думал, что <=> и == теперь никак друг на друга не влияют

Liber Azerate
Да, сгенерируется

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1185r2.html#change-defaulted-to-also-generate-a-defaulted а тут говорится обратное

Alexander Karaev
http://www.open-std.org/jtc1/sc22/wg21/docs/papers...

Ну так, здесь как раз написано As an optional extension, this paper proposes that a defaulted <=> operator also generate a defaulted ==. We can do this regardless of whether the return type of the defaulted <=> is provided or not, since even weak_equality implies ==.

Liber Azerate
Ну так, здесь как раз написано As an optional ext...

ну да, с пропозалом не совсем ясно - что-то из него приняли, что-то нет. без поллитра..

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта