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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    void CDAMN::ControlDAMNAmount(DWORD newValue)
    {
    	if(newValue != 0)
    		controlDAMNAmount = newValue;
    }
    
    DWORD CDAMN::ControlDAMNAmount()
    {
    	return controlDAMNAmount;
    }

    Автор тот же
    Две функции с одним именем. Одна изменяет внутреннее поле (член класса)- другая возвращает его значение. Использовать приставки get_ и set_ недосуг как-то. Да и называть внутренние переменные класса так, чтобы было понятно, что они не глобальные (с приставкой “m_”) тоже облом. Хайтек-шмайтек…

    ShuraKotov, 14 Февраля 2011

    Комментарии (30)
  2. C++ / Говнокод #5666

    +165

    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
    class cSG5DataException ... {
        cSG5DataException(CTstatus Status, CTsymbol Error,
                          CTsymbol SubError, std::string Description, ...)
       {
         /* форматирование сообщения */
       }
       /* виртуальный деструктор наличиствует */
    };
    
    class cExcKVSDuplicateKey : public cSG5DataException  {
     /* пусто */
    };
    
    /* код */
    
        throw (cExcKVSDuplicateKey*) new cSG5DataException( CT_statusFail,
                                                            CT_errorObjectExists,
                                                            CT_errorObjectExists,
         "cKVSet_STL_map::insert( CTint k, Value& v ), %d is already in the map",k);

    вот так хитро народ обходит проблему писания конструкторов. темплейт фактори функцию сделать не догадались. но С-style конверсию типов - пожалуйста. мне честно говоря и сложно то себе представить что это как-то работать может. смена типа поинтера то на тип объекта не влияет.

    Dummy00001, 14 Февраля 2011

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

    +175

    1. 1
    2. 2
    3. 3
    port.put(0x64, 0xEE);
    for(register int r=0;r<0xffff;++r);
    port.get(0x64);

    port - объект для обращения к портам ввода\вывода компьютера.
    for - задержка между обращениями к портам (Оптимизатор С++ её конечно же убирает в релизе программы).

    Говногость, 12 Февраля 2011

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    template<const bool Value>
    const bool BoolToFunc(void) const 
    {
    	return Value;
    };

    Говногость, 11 Февраля 2011

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

    +165

    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
    enum TextAlignment
    {
    	ALIGN_LEFT = 0,
    	ALIGN_RIGHT,
    	ALIGN_CENTER
    };
    
    ...
    
    if(m_textAlignment > 0 && maxLineWidth < m_desiredLength)
    {
    	float offsetx = (m_desiredLength - maxLineWidth) / m_textAlignment;
    	...
    }

    Выравниваем текст. Универсальненько.
    Что будет, если значения в энумке поменяются или добавится, к примеру, justify, никого не волнует.

    Kirinyale, 11 Февраля 2011

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

    +177

    1. 1
    auto r=disable(reinterpret_cast<void*>(static_cast<Efrag*>(const_cast<Efrig*>(ef))));

    Три мудреца в одном тазу
    Пустились по морю в грозу.
    Будь попрочнее старый таз,
    Длиннее был бы мой рассказ.
    ..............Самуил Маршак

    Говногость, 10 Февраля 2011

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

    +147

    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
    #include <stdio.h>
    int main(int t,int _,char*a)
    {return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
    main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
    )&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
    t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
    ,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
    +k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
    l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
    n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
    ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
    #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
    :t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
    +1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
    i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

    Консольный вывод этой программы:
    On the first day of Christmas my true love gave to me
    a partridge in a pear tree.

    On the second day of Christmas my true love gave to me
    two turtle doves
    and a partridge in a pear tree.

    ...
    [Все не вместилось]
    ...

    On the tenth day of Christmas my true love gave to me
    ten lords a-leaping,
    nine ladies dancing, eight maids a-milking, seven swans a-swimming,
    six geese a-laying, five gold rings;
    four calling birds, three french hens, two turtle doves
    and a partridge in a pear tree.

    On the eleventh day of Christmas my true love gave to me
    eleven pipers piping, ten lords a-leaping,
    nine ladies dancing, eight maids a-milking, seven swans a-swimming,
    six geese a-laying, five gold rings;
    four calling birds, three french hens, two turtle doves
    and a partridge in a pear tree.

    On the twelfth day of Christmas my true love gave to me
    twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
    nine ladies dancing, eight maids a-milking, seven swans a-swimming,
    six geese a-laying, five gold rings;
    four calling birds, three french hens, two turtle doves
    and a partridge in a pear tree.

    Говногость, 10 Февраля 2011

    Комментарии (21)
  8. C++ / Говнокод #5623

    +175

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    template<class Exception>
    bool GenerateException(const Exception* const e)
    {
    	throw e;
    	delete e;
    	return true;
    }

    Продолжение цикла говнокодов про исключения из того же самого проекта.
    Проблем от неё почти нет, тк в основном исключения генерятся так:

    ExceptionТакойто e;
    GenerateException(&e);

    Говногость, 10 Февраля 2011

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    class  SeismicDriver {
      void   set2DVolume    (GlData2DVol* vol = 0, bool reserv = false);
      GlData2DVol*   _glData2DVol;      /**< Seismic 2D Line */
    }
    
    void SeismicDriver::set2DVolume  (GlData2DVol* vol, bool reserv)
    {
      _glData2DVol = vol;
    }

    Наш подопытный китаец очень предусмотрительный. Если в будущем вдруг случится, что функции понадобится второй параметр типа bool - опа! - он уже есть :)

    kitaec, 09 Февраля 2011

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

    +162

    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
    20. 20
    21. 21
    class GlData2DLine
    {
      virtual std::vector<Vec2d> getDecimatedPoints();
     protected:
      std::vector<Vec2d> c_decimated_points;
    }
    
    std::vector<Vec2d> GlData2DLine::getDecimatedPoints()
    {
      return c_decimated_points;
    }
    
    class GlData2DLineOD : public GlData2DLine
    {
      virtual std::vector<Vec2d> getDecimatedPoints();
    }
    
    std::vector<Vec2d> GlData2DLineOD::getDecimatedPoints()
    {
      return c_decimated_points;
    }

    Наш любимый китаец увлекся ООП и полиморфизмом что забыл очевидное.

    kitaec, 09 Февраля 2011

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