Кресты / Говнокод #24863 Ссылка на оригинал

0

  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 Elvenfighter, (Updated )

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

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


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


    Сишники, как вы с этим живете?
    Ответить
        • ну как-то не сильно интересовался их проблемами, но так-то есть clang-cl.exe или mingw

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

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

              Есть «Open Watcom».

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

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

          Ты же тоже виндузятник? Как минимум, вчера писал, что не прыщеблядь.
          Ответить
    • Надо запретить использовать инкременты/декременты в правой части. Почти всегда они приводят к труднопрогнозируемому поведению.
      Ответить
  • <?php
    
    class ShaderElement
    {
        function equal(ShaderElement $S)
        {
            if (null == $S && null == $this)
                return TRUE;
            if (null == $S || null == $this)
                return FALSE;
            return equal2($S);
        }
    }
    Ответить
      • Может. $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, хотя новичок что-то новое узнает. Вопрос в том что языки с ООП, лучше тех где ООП нет, но ООП-стиль используется.
                Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8