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

    +21

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    unsigned i=Facts.size();
    optimized=false;
    Facts.push_back(fact);
      
    if(Facts.size()>i)
       return i;
       else
       return -1;

    Обмазываем push_back рет-кодом.

    Запостил: Try, 21 Сентября 2012

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

    • Это под какую-то новую версию симбиана, где нет не только исключений, но и leave'ов?
      Ответить
    • int y = x;

      if (y == x) {
      return (x - y);
      } else {
      return 0;
      }
      Ответить
    • нах это?
      Ответить
      • А вдруг push_back ничего не поместит в коллекцию, и не вбросит экцепшн?
        Ответить
        • unsigned i=Facts.size();
          optimized=false;
          Facts.push_back(fact);
            
          if(Facts.size() == i + 1 && Facts[i] == fact)
             return i;
          else
             exit(1); // сраная крестофункция не умеет принимать строку; жаль, что пользователь так и не узнает в чём причина ошибки
          return (-1);
          Ответить
          • и молодая не узнает какой у парня был конец
            Ответить
          • > if(Facts.size() == i + 1 && Facts[i] == fact)
            Юнит-тест прям ;)

            > return (-1);
            Все современные компиляторы понимают, что из exit'а нет возврата, и не будут докапываться к отсутствующему return. Насчет скобок вокруг -1 придираться не буду, хоть они и не нужны, но все-таки в том же BSD принято так писать.
            unsigned i=Facts.size();
            optimized=false;
            Facts.push_back(fact);
              
            if(Facts.size() == i + 1 && Facts[i] == fact)
               return i;
            else
               assert("Сраная крестофункция не умеет принимать строку, зато ассерт умеет ;)" && 0);
            return -1;
            Ответить
            • Я тебя поправлю, с твоего позволения:
              assert("Сраная крестофункция не умеет принимать строку, зато ассерт умеет ;)" && 0);
              exit(1);

              Сложно определить в данных условиях с дивана правильное решение, но если ты прав, то я правее.
              Ответить
              • На случай отключенных ассертов? Ну да согласен.
                Ответить
    • Обмазываем push_back говном и дрочим.
      Ответить
    • Почему код не оптимизирован?
      Ответить
    • Когда мы вышли с тропинки на грунтовую дорогу Пашка, идущий впереди остановился и обернулся. Я почти не видел его лица, лишь отражение луны в глазах.
      Ответить

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