Сообщение Re[3]: про многословность от 04.02.2025 11:16
Изменено 04.02.2025 14:07 rg45
Re[3]: про многословность
Здравствуйте, ononim, Вы писали:
O>·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
O>
O>
O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Так заняты уже std::less, std::greater и std::equal. И имеют совсем другую семантику. Для компактности записи полно всяких средств: алиасы классов и пространств имен, а также using declarations (просто using std::strong_ordering). От того, что ты напишешь дополнительное объявление, твой код никак не проиграет, а только выиграет. Делая такие объявления, ты чётче очерчиваешь границы между "что" и "как".
Я уже молчу о том, что этот оператор вообще должен реализоваться в одну строчку при нормальном дизайне:
O>·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
O>
O>std::strong_ordering Foo::operator <=>(const Foo &other) const
O>{
O> int r = name.compare(other.name);
O> if (r != 0) {
O> return (r < 0) ? std::strong_ordering::less : std::strong_ordering::greater;
O> }
O> return std::strong_ordering::equal;
O>}
O>
O>
O>std::cmp Foo::operator <=>(const Foo &other) const
O>{
O> int r = name.compare(other.name);
O> if (r != 0) {
O> return (r < 0) ? std::less : std::greater;
O> }
O> return std::equal;
O>}
O>
O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Так заняты уже std::less, std::greater и std::equal. И имеют совсем другую семантику. Для компактности записи полно всяких средств: алиасы классов и пространств имен, а также using declarations (просто using std::strong_ordering). От того, что ты напишешь дополнительное объявление, твой код никак не проиграет, а только выиграет. Делая такие объявления, ты чётче очерчиваешь границы между "что" и "как".
Я уже молчу о том, что этот оператор вообще должен реализоваться в одну строчку при нормальном дизайне:
auto Foo::operator <=>(const Foo &other) const { return name <=> other.name; }
Re[3]: про многословность
Здравствуйте, ononim, Вы писали:
O>·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
O>
O>
O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Так заняты уже std::less, std::greater и std::equal. И имеют совсем другую семантику. Для компактности записи полно всяких средств: алиасы типов и пространств имен, а также using declarations (просто using std::strong_ordering). От того, что ты напишешь дополнительное объявление, твой код никак не проиграет, а только выиграет. Делая такие объявления, ты чётче очерчиваешь границы между "что" и "как".
Я уже молчу о том, что этот оператор вообще должен реализоваться в одну строчку при нормальном дизайне:
O>·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
O>
O>std::strong_ordering Foo::operator <=>(const Foo &other) const
O>{
O> int r = name.compare(other.name);
O> if (r != 0) {
O> return (r < 0) ? std::strong_ordering::less : std::strong_ordering::greater;
O> }
O> return std::strong_ordering::equal;
O>}
O>
O>
O>std::cmp Foo::operator <=>(const Foo &other) const
O>{
O> int r = name.compare(other.name);
O> if (r != 0) {
O> return (r < 0) ? std::less : std::greater;
O> }
O> return std::equal;
O>}
O>
O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Так заняты уже std::less, std::greater и std::equal. И имеют совсем другую семантику. Для компактности записи полно всяких средств: алиасы типов и пространств имен, а также using declarations (просто using std::strong_ordering). От того, что ты напишешь дополнительное объявление, твой код никак не проиграет, а только выиграет. Делая такие объявления, ты чётче очерчиваешь границы между "что" и "как".
Я уже молчу о том, что этот оператор вообще должен реализоваться в одну строчку при нормальном дизайне:
auto Foo::operator <=>(const Foo &other) const { return name <=> other.name; }