1. Список говнокодов пользователя Yuuri

    Всего: 11

  2. C++ / Говнокод #23388

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    MMappedReader &operator=(MMappedReader &&other) {
        if (this != &other) {
            *this = std::move(other);
        } 
        return *this;
    }

    I like to move it, move it!

    Yuuri, 06 Октября 2017

    Комментарии (13)
  3. C++ / Говнокод #20262

    +2

    1. 1
    2. 2
    const size_t longstring_size = 1000500; // TODO: O RLY magic constant? => Can't load edges >= 1Mbp
            char longstring[longstring_size];

    Орфография комментариев сохранена.

    Yuuri, 23 Июня 2016

    Комментарии (9)
  4. Haskell / Говнокод #20004

    −55

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    import qualified Data.ByteString.Lazy.Char8 as BS
    
    readLineOfInts :: BS.ByteString -> [Int]
    readLineOfInts str = case BS.readInt str of
              Nothing -> []
              Just (i, rest) -> i : if BS.null rest then [] else readLineOfInts (BS.tail rest)

    То чувство, когда map read . words не проходит по таймауту.

    Yuuri, 14 Мая 2016

    Комментарии (20)
  5. C++ / Говнокод #19168

    +11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    void Aligner::set_genomic_sequences(vector< pair <string,string> > nt_genomic_seq){
    	this->nt_genomic_sequences = *(new forward_list<pair<string,string>>);
    	this->int_genomic_sequences = *(new forward_list<pair<string,string>>);
    	for(vector<pair<string,string>>::const_iterator iter = nt_genomic_seq.begin() ; iter != nt_genomic_seq.end() ; iter++){
    		nt_genomic_sequences.emplace_front((*iter).first,(*iter).second);
    		int_genomic_sequences.emplace_front((*iter).first , nt2int((*iter).second));
    	}
    }

    Типичный академический код из https://bitbucket.org/yuvalel/repgenhmm. Могу только предположить, что авторы скопипастили код из Java, а потом разыменовывали указатели, пока не скомпилировалось.

    Yuuri, 11 Декабря 2015

    Комментарии (24)
  6. C++ / Говнокод #18656

    +7

    1. 1
    void parse_csv_string_string_string_string(string in_file, vector<string>& spectrum_id_list, vector<string>& file_name_list, vector<string>& name_list, vector<string>& id_list) {

    – Дяденька, осторожно, у вас клавиатура солидолом намазана...

    Yuuri, 31 Августа 2015

    Комментарии (3)
  7. C# / Говнокод #17325

    +133

    1. 1
    2. 2
    3. 3
    BaseIndexerObjectType type;
    <...>
    var searchType = (SearchEntity)Enum.Parse(typeof(SearchEntity), type.ToString());

    Наткнулся на просторах рабочего кода. Конвертируем один енум в другой.

    Yuuri, 17 Декабря 2014

    Комментарии (0)
  8. Haskell / Говнокод #14343

    −83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    setRegState :: RegisterStates -> M_Register -> Word8 -> RegisterStates
    setRegState rs r n =
      let (a, b, c, d, e, f, h, l, pc, sp) = rs in
      case r of
        M_A -> (n, b, c, d, e, f, h, l, pc, sp)
        M_B -> (a, n, c, d, e, f, h, l, pc, sp)
        M_C -> (a, b, n, d, e, f, h, l, pc, sp)
        M_D -> (a, b, c, n, e, f, h, l, pc, sp)
        M_E -> (a, b, c, d, n, f, h, l, pc, sp)
        M_F -> (a, b, c, d, e, n.&.0xF0, h, l, pc, sp)
        M_H -> (a, b, c, d, e, f, n, l, pc, sp)
        M_L -> (a, b, c, d, e, f, h, n, pc, sp)

    Haskell has no boilerplate.
    Из исходников заброшенного эмулятора GameBoy (https://github.com/bitc/omegagb/)

    Yuuri, 10 Января 2014

    Комментарии (9)
  9. Куча / Говнокод #14217

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    countDigits :: (Integral a) => a -> Int
    {-# INLINE countDigits #-}
    countDigits v0 = go 1 (fromIntegral v0 :: Word64)
      where go !k v
               | v < 10    = k
               | v < 100   = k + 1
               | v < 1000  = k + 2
               | v < 1000000000000 =
                   k + if v < 100000000
                       then if v < 1000000
                            then if v < 10000
                                 then 3
                                 else 4 + fin v 100000
                            else 6 + fin v 10000000
                       else if v < 10000000000
                            then 8 + fin v 1000000000
                            else 10 + fin v 100000000000
               | otherwise = go (k + 12) (v `quot` 1000000000000)
            fin v n = if v >= n then 1 else 0

    Хаскельная магия из исходников Data.Text.

    Yuuri, 12 Декабря 2013

    Комментарии (15)
  10. C++ / Говнокод #13971

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    class pool_exeption: public std::exception
    {
        virtual  const char* what() const throw()
        {
            return "Pool out of bounds";
        }
    }pool_out_of_bounds;
    class pool_exeption2: public std::exception
    {
        virtual  const char* what() const throw()
        {
            return "Pool block is too small";
        }
    }pool_small_block;

    А потом эти исключения кидаются по значению: throw pool_out_of_bounds;
    virtual const char* WAT()

    Yuuri, 18 Октября 2013

    Комментарии (49)
  11. C++ / Говнокод #12611

    +28

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( _It->m_sOpenText.substr( 0, 3 ) == "<tr" ||
    		 _It->m_sOpenText.substr( 0, 3 ) == "<th" ||
    		 _It->m_sOpenText.substr( 0, 3 ) == "<td" ||
    		 _It->m_sOpenText.substr( 0, 6 ) == "<thead" ||
    		 _It->m_sOpenText.substr( 0, 6 ) == "<tbody" ||
    		 _It->m_sOpenText.substr( 0, 6 ) == "<tfoot" ||
    		 _It->m_sOpenText.substr( 0, 8 ) == "<caption" ||
    		 _It->m_sOpenText.substr( 0, 4 ) == "<col" ||
    		 _It->m_sOpenText.substr( 0, 9 ) == "<colgroup" )
    		return; // TODO: я пишу ТАКОЙ код, убейте меня...

    Продолжаем неделю свитчей  — HTML-препроцессор!

    Yuuri, 19 Февраля 2013

    Комментарии (18)