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

Сообщение Re: Упоротость С++ от 16.08.2023 13:38

Изменено 16.08.2023 14:20 B0FEE664

Re: Упоротость С++
Здравствуйте, dmitry_npi, Вы писали:

S>>Вот они сделали, что std::strong_ordering::equal и прочие нельзя было запихнуть в switch case.

S>>Но это не проблема, пишем враппер!
_>/*много устрашающего кода*/
_>Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое... Но как гляну на это, и думаю — нет, не зря. Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще? Зачем это вообще? Как потом это разбирать пришедшему на проект?

Конечно можно написать проще:
#include <iostream>

int main()
{
  const auto cmp    = 0./0. <=> 1. ;
  const auto result = 
  [&]
  {
     if ( cmp == cmp.less      ) return "less";
     if ( cmp == cmp.greater   ) return "greater";
     if ( cmp == cmp.unordered ) return "unordered";
                                 return "equivalent";
  }();
   
  std::cout << result << std::endl;
  return 0;
}


Просто автор хотел загорячиться. Зачем — это к автору.
Re: Упоротость С++
Здравствуйте, dmitry_npi, Вы писали:

S>>Вот они сделали, что std::strong_ordering::equal и прочие нельзя было запихнуть в switch case.

S>>Но это не проблема, пишем враппер!
_>/*много устрашающего кода*/
_>Иногда я думаю, не зря ли я ушёл в C# из C++, всё-таки проприетарщина, а у нас импортозамещение, санкции и всё такое... Но как гляну на это, и думаю — нет, не зря. Плюсовики, вы там совсем свихнулись, что ли? Нельзя это написать как-то попроще? Зачем это вообще? Как потом это разбирать пришедшему на проект?

Конечно можно написать проще:
#include <iostream>

int main()
{
  const auto cmp    = 0./0. <=> 1. ;
  const auto result = 
  [&]
  {
     if ( cmp == cmp.less      ) return "less";
     if ( cmp == cmp.greater   ) return "greater";
     if ( cmp == cmp.unordered ) return "unordered";
                                 return "equivalent";
  }();
   
  std::cout << result << std::endl;
  return 0;
}


Просто автор хотел заморочиться. Зачем — это к автору.