1. C++ / Говнокод #24863

    −10

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    BOOL ShaderElement::equal(ShaderElement* S)
    {
        if (nullptr == S && nullptr == this)
            return TRUE;
        if (nullptr == S || nullptr == this)
            return FALSE;
        return equal(*S);
    }

    https://www.linux.org.ru/forum/development/14512625

    Запостил: Elvenfighter, 05 Октября 2018

    Комментарии (73) RSS

    • А как надо?
      Ответить
    • >>nullptr == this
      дякую тоби боже що я не крестоблядь
      Ответить
      • А хто ти?
        Ответить
        • Начнем с того, что работа мойщиком автомобилей является достаточно тяжелым трудом, подразумевающим под собой длительное нахождение на ногах. При этом сотрудникам приходится управляться с различным оборудованием, будь то шланги высокого давления или пеногенераторы. Более того, к автомойщикам относятся не слишком уважительно, предъявляя к их работе неоправданно завышенные требования. Данная профессия считается откровенно непрестижной и даже незаметной. Мало кто задумывается над вопросом, насколько важную функцию выполняют эти люди в забавной униформе и высоких резиновых сапогах. Ведь какой бы дорогой ни была машина, никто не заметит ее красоты под толстым слоем грязи. Именно поэтому профессия автомойщика является крайне востребованной.
          Ответить
          • Вам в спидорашку автоматические мойки ещё не завезли?
            Ответить
      • Как написали по ссылке в комментариях такое может быть true не от хорошего кода. Тру крестобляди таких проблем не имеют
        Ответить
    • Сразу переводим на "PHP", БЛЯДЬ.
      Ответить
    • Смотрите, какая прелесть
      int a = 2, b = 42, c;
      c = min(a++, b);


      А там хуяк
      #define min(x,y) (((x) < (y)) ? (x) : (y))


      Сишники, как вы с этим живете?
      Ответить
      • Не надо так, лучше использовать inline функую.
        Ответить
      • > как вы с этим живете
        -DNOMINMAX
        Ответить
      • вот бы сишникам в 2018 году использовать вижуал студию, ага
        Ответить
        • А у них под вендой есть выбор?
          Ответить
          • ну как-то не сильно интересовался их проблемами, но так-то есть clang-cl.exe или mingw

            всё лучше, чем жрать убогий C89, покрытый виндовым говном из 90 (min/max как раз пример)
            Ответить
            • Дык min/max вроде из SDK прилетает, а не из стандартной либы... Т.е. это говнище у тебя и в шланге и в гцц будет если винапи захочется поюзать.

              Ну и clang/gcc уже научились кошерно собирать драйверы? А это как бы одно из основных мест, где сишка всё ещё активно юзается.
              Ответить
            • не пизди, тупой пиздун
              Ответить
            • Ещё есть dmc!
              Ответить
              • Ещё есть «Intel», но он платный (правда, есть в торрентах).

                Есть «Open Watcom».

                Есть «Pelles C» (только сишка без крестов).

                Есть «Tiny C» маньяка Фабриса Белляра (тоже только сишка без крестов).
                Ответить
          • > у них

            Ты же тоже виндузятник? Как минимум, вчера писал, что не прыщеблядь.
            Ответить
      • В крестах функция в стандартний библиотеке:
        https://en.cppreference.com/w/cpp/algorithm/min
        Ответить
      • Надо запретить использовать инкременты/декременты в правой части. Почти всегда они приводят к труднопрогнозируемому поведению.
        Ответить
        • Ты только что изобрел Python (но там пошли на несколько шагов дальше)
          Ответить
          • Сунул тебе на несколько сантиметров глубже, проверь.
            Ответить
    • <?php
      
      class ShaderElement
      {
          function equal(ShaderElement $S)
          {
              if (null == $S && null == $this)
                  return TRUE;
              if (null == $S || null == $this)
                  return FALSE;
              return equal2($S);
          }
      }
      Ответить
      • equal2 - пыха не может в полиморфизм? Ай-яй-яй.
        Ответить
        • Какое страшное непонятное слово…
          Ответить
        • Может. $S может принимать значение произвольного типа.

          Пыха не может в перегрузку.
          Ответить
          • И реализация будет разной, а имя одинаковым?
            Ответить
            • Нет. В "PHP" принято писа́ть одну функцию, но с аргументами, принимающими произвольные значения (вместе со значением передаются метаданные):
              function unskilled($s) {
              if (is_array($s)) {
                  echo '$s —— массив';
              } else if (is_bool($s)) {
                  echo '$s —— булево';
              } else if (is_float($s)) {
                  echo '$s —— плавающий питух';
              } else if (is_int($s)) {
                  echo '$s —— целое';
              } else if (is_null($s)) {
                  echo '$s —— пустое';
              } else if (is_object($s)) {
                  echo '$s —— объект, имя класса:' . get_class($s);
              } else if (is_resource($s)) {
                  echo '$s —— ресурс типа ' . get_resource_type($s);
              } else if (is_string($s)) {
                  echo '$s —— строка';
              }
              }


              Кроме того, бывают значения по умолчанию. Допустим, объявили функцию так:
              function pituh($konardo, $horse = 42, $obeh = 'foo');
              Тогда мы её можем вызывать как с тремя аргументами, так и с двумя (вместо последнего подставится 'foo'), так и с одним (вместо второго подставится 42, а вместо последнего —— 'foo').
              Ответить
              • Кисунь, именно поэтому я за "PHP" и за процедурный подход: всё очевидно, последовательно, перед глазами программиста чёткенькая картина происходящего, в то время, как во влажном "ООП" всё разбито по десяткам файлов - моделям, представлениям, контроллерам, интерфейсам, абстракциям и прочей хуете.
                Ответить
                • Возможно, Вы имели в виду: процедурное программирование.
                  Ответить
                  • Всё уже в порядке. Ипподромная лошадь - и та ногу сломит в этом дутом океане терминов.
                    Ответить
          • Ничего не понял. В общем, я против "ООП".
            Ответить
            • Усиленное отрицание ООП говорит о латентной предрасположенности к ООП. Открой для себя дивный мир классов и методов - с хорошей смазкой и предварительными ласками больно не будет, а потом даже нравится начнет.
              Ответить
              • Меня от "mysql_fetch_object"-то трясёт, а ты про "методы" и "классы" втираешь.
                Ответить
              • ОВЕН, не слушай его. ООП не привносит никаких новых концепций помимо наследования реализации, которое само по себе антипаттерн.
                Ответить
                • А если все классы делать финальными?
                  Ответить
                  • А без классов как-то можно? Нахуй они нужны?
                    Ответить
                  • То получишь больше боли без особого профита. Типичные ООПшные недоязычки один хуй не дадут тебе нормального механизма для агрегации вместо наследования.
                    Ответить
                    • А как сделано в правильных языках?
                      Ответить
                    • Например, в новых делфях есть ключевое слово final.
                      Но ты прав. Одно из самых слабых звеньев в ООП - это наследование, где в каждой реализации автор извращается по-свеому, взять хотя бы множественное наследование в c++. Ещё пара слабых звеньев - полиморфизм и инкапсуляция. Если можно взять и взять указатель на геттер - это инкапсуляция? Фи...
                      Ответить
                  • Во хуев понарозвелось-то...
                    Ответить
                • Вопрос даже не в новизне, в ООП стиле можно писать наверное где угодно, так сишники поступают со своим вечным handle, хотя новичок что-то новое узнает. Вопрос в том что языки с ООП, лучше тех где ООП нет, но ООП-стиль используется.
                  Ответить
    • Хуй в писту.
      Ответить

    Добавить комментарий