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

    +188

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    typedef enum
      {
        FFALSE = 0,
        TTRUE,
        MMAYBE
      } Truth_t;

    ну почти квантовое программирование.

    ЗЫ да, это из С++ программы.

    Запостил: Dummy00001, 21 Июня 2011

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

    • женская логика, че = )
      Ответить
    • над заиками смеяться аморально
      Ответить
    • а как реализована обработка MMAYBE?
      полагаю, что random - не даром же он лучший эмулятор женской логики.
      Ответить
    • Видимо просто эмулятор квантового компьютера.
      Ответить
    • не верю
      Ответить
      • Константин Сергеевич, это Вы?
        Ответить
      • я это нашел случайно, потому что FALSE в коде увидел с двумя f написаное. думал что кто-то очепятку сделал. нет, автор преднамерено наговнокодила. код, схематично:

        class FunnyClass
        {
           bool checkRegistry()
           {
             /* code return'ing FFALSE/TRUE/MMAYBE; */
           }
        
           FunnyClass *createInstance()
           {
              /* ... */
              int res = checkRegistry();
              if (res == FFALSE)
              /* ... */
              if (res == TTRUE)
              /* ... */
              if (res == MMAYBE)
              /* ... */
           }
        };


        вообщем, ГК как ГК. полет фантазии некоторых коллег не перестает меня приятно удивлять.
        Ответить
        • "автор преднамерено наговнокодила" так это женщина?! Чего сразу не сказал! Тогда всё понятно)))
          Ответить
        • Что-что возвращает checkRegistry?
          Ответить
          • Это же С++.
            bool f()
            {
            return 5;
            };
            int a=f();
            Зависит от компилятора, но скорее всего в а будет лежать 5.
            Ответить
            • xlC, SunStudio, aCC, g++ - все единодушно на данном тесткейсе выдали как и ожидалось, по С++ стандарту, 1. В независимости от оптимизации.
              Ответить
            • >Зависит от компилятора, но скорее всего в а будет лежать 5.
              Неявное преобразование bool в int даст в результате 0 для false или 1 для true. ISO/IEC 14882:2003 4.7.4
              Ответить
              • показать все, что скрытоТочно. Выше я глупость сморозил. Проверял это как-то на С++ для одного контроллера, а там видимо, не полное соответствие стандарту.

                Visual Studio 2010 без единого варнинга возвращает 5 в a:
                bool f()
                {
                	__asm mov eax, 5
                }
                int a=f();
                Ответить
            • Так то, все что не ноль считается истиной.
              Попробуйте так:
              bool f(){
              return !"ololo";
              }
              Ответить
        • /* code return'ing FFALSE/TTRUE/MMAYBE; */
          Ответить
        • > автор преднамерено наговнокодила
          я это и имел ввиду, попросите сисадмина закрыть доступ на dailywft
          Ответить
    • Эх, вспоминается хаскелевское Maybe.
      Ответить
    • >Truth_t;
      Истина_т
      Ответить
    • Интересно, чем-же продиктовано дублирование первых букв?
      Ответить
      • Грепать хорошо.
        Ответить
      • первое, что бы не совпало с зарезервированными, а второе - для однородности.
        по мне, так было бы неплохо YES/NO/MAYBE
        Ответить
    • Баян, в Индии давно уже используется булевый тип с 4 или 5 значениями. Какой тогда у них там "квантовый компьютер"?
      Ответить
      • Ну в схемотехнике значений в булевом типе намного больше. Для всех операций (и, или, не и тд.) над ними существуют расширенные логические таблицы, отличные от программистских. По моему, есть вариант схемотехнический булева типа, в котором 9 значений, так что "Индия" безнадёжно отстала.

        >Сигналы или переменные могут быть
        представлены следующими логическими
        уровнями:
        • 0: ноль, логический низкий уровень, «лож-
        но», «земля» (zero, logic low, false, ground);
        • 1: единица, логический высокий уровень,
        «истина», «питание» (one, logic high, power);
        • X: неизвестное значение (unknown);
        • Z: высокий импеданс, неподключенный
        сигнал, третье состояние (high impedance,
        unconnected, tri-state).
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

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