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

    +146.9

    1. 1
    2. 2
    3. 3
    4. 4
    class ToBeOrNotToBe{};
    void distortion(ToBeOrNotToBe...)
    {
    }

    Код компилируется в 2008 MVS

    Запостил: Barmaglot, 28 Января 2010

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

    • Я, Altravert, находясь в здравом уме и твердой памяти, торжественно заявляю: И ЧЁ?
      Ответить
      • Что подобная запись означает можешь рассказать?
        Ответить
        • Так уж и быть, добрый guest раскроет секрет:
          http://en.wikipedia.org/wiki/Stdarg.h
          Ответить
          • Дурак я. Надо было тонко на printf намекнуть.
            Ответить
            • А то что запятой перед эллипсисом нет это нормально? Как нормальный компилятор может допускать такое?!
              Ответить
              • Ну, g++ нормально хавает...
                Ответить
                • А зачем? Чтоб можно было не писать запятые? Это же бред полный. На пустом месте неоднозначность и компилятор спокоен как удав. Может я чего-то не понимаю и это "фича", добавленная для совместимости с чем-то?
                  Ответить
                  • Да, прикольно, в стандарте, вроде, так:
                    http://www.kuzbass.ru:8086/docs/isocpp/decl.html#dcl.fct
                    Ответить
                    • То бишь компилятор в этом примере лишь следует стандарту. Еще печальнее.
                      Ответить
              • Извини, думал, что ты про varargs совсем не знал :(
                Ответить
                • Скорее моя бага - думал что это очевидно, ляп в отсутствии запятой
                  Ответить
                  • В смысле ляп компилятора. Этот код компилируется нормально ошибок в нем нет.
                    Ответить
        • Да, я знаю что такое ва-арги. А вопросами на вопрос отвечать нехорошо.
          ToAll:: Орфографические ошибки -- не говнокод.
          Ответить
          • Где опечатки? Код компилиться.
            Ответить
          • "Ва-арги" это
            void distortion(...);
            или на крайний случай
            void distortion(TSome some, ...);
            А как интерпретировать
            void distortion(TSome...);
            сходу можешь сказать? Особенно, если не видишь TSome?

            > Я, Altravert, находясь в здравом уме и твердой памяти, торжественно заявляю: И ЧЁ?
            http://govnokod.ru/2496#comment14697
            Ответить
    • Да заебали уже свое говно сюда постить, я, бля сча навыдумываю, всякого ++i+=i+++i-- и вхерачу 50 таких постов с вариациями, только кому это будет интересно?

      >>Что подобная запись означает можешь рассказать?
      Блин, сайт называется ГОВНОКОД, а не "что я узнал сегодня нового на уроке программирования"
      Ответить
      • Сходи на уроки, русский выучи
        Ответить
        • Сходи нахер. А перед этим, сам в

          >> На пустом месте неоднозначность и компилятор спокоен как удав. Может я чего-то не понимаю и это
          >> "фича", добавленная для совместимости с чем-то?

          запятые правильно расставь, гумонетарчег =)
          Ответить
      • +
        Ответить
      • >я, бля сча навыдумываю, всякого ++i+=i+++i--:
        ++i+=i+++i--+i---i+++++i1111111
        Семантически верное выражение.

        >я, бля
        Я знаю.
        Ответить
    • Где здесь C++?
      Ответить
      • class
        Ответить
        • Если бы была запятая перед троеточием, то отмазка бы не прокатила, это мог бы быть и сишный код.
          Ответить
          • :-)
            Если была бы запятая перед троеточием, говнокода бы не было
            Ответить
            • Кстати, параллельно придумалась задача для собеседования, как с помощью препроцессора сделать из этого компилируемый кусок.
              Ответить
              • Имеешь ввиду на С компиляторе?
                зы еще задач подкинуть?
                Ответить
                • ага, на сишном.
                  Пока не надо, но если что, буду знать, куда обращаться!
                  Ответить
              • #define ToBeOrNotToBe ToBeOrNotToBe,
                Ответить
                • Нифига, а умище {} в первой строке куда девать?
                  Ответить
              • #define class
                #define ToBeOrNotToBe
                class ToBeOrNotToBe{};
                void distortion(ToBeOrNotToBe...)
                {
                }

                Например так?
                Ответить
                • Неа, фигурные все равно мешаются.
                  И да, по ISO перед троеточием должен быть кто-то поименованный.
                  Ответить
                  • жаль под руками компилятора нет.

                    можно так:
                    #define class struct
                    #define distortion( name ) function(void)

                    или все нафиг переопределить на // :-)
                    Ответить
                    • >или все нафиг переопределить на //
                      Так нельзя.
                      Ответить
                    • Да, первый способ хорош... У меня было извращеннее, я слишком много времени провожу на говнокоде!
                      #define class
                      #define ToBeOrNotToBe void p(void)
                      Ответить
                    • Но не сработает, если запятая все-таки будет.
                      Ответить
      • Да заебали!
        http://www.govnokod.ru/cpp
        Ответить
    • Код компилица! Нет опечаток. Но все равно говно.)))
      Ответить
    • Компилируется и в MSVC 6.5 тоже. Не верите? Сами попробуйте!
      Ответить

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