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

    +48.5

    1. 1
    2. 2
    3. 3
    4. 4
    while(!pVec.empty())
    {
             pVec.pop_back();
    }

    Сей артефакт остался в коде ввиду лености переписывать его в 100 файлах сразу после удаления того, ради чего собственно затевался while(!pVec.empty()) ... прямо скажем - отлов ЭТОГО занял немало времени и нервов... тк на первый взгляд оно должно... а что ты видишь в этом коде, %юзернейм% ?

    Zeks, 02 Ноября 2009

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

    +50.7

    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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    namespace inter {
        template<typename X>
        struct tplClass {
            private:
                X _priv;
            
            public:
                tplClass(const X _generator) {
                    this->_priv = _generator;
                    return;
                }
                
                tplClass(const tplClass<int>& _a) {
                    this->_priv = _a.get();
                    return;
                }
    
                const X get(void) const {
                    return this->_priv;
                }
        };
        
        
        template<typename X>        
        const tplClass<X> operator+(const tplClass<X>& _lha, const tplClass<X>& _rha) {
            return tplClass<X>(_lha.get()+_rha.get());
        }
    }
    
    int main(int argc, char* args[], char* envs[]) {
        tplClass<int> a(5);
        tplClass<double> b(3.1);
        tplClass<double> c = a + b;
        return 0;
    }

    1. Всё упрощено до невозможности. Описано только то, что необходимо для узрения говнокода.
    2. Несмотря на то, что решение существует в очень известной книжке, я напоролся на говнокод лично, пока программу писал. Искал несколько дней проблему... Ну да... Бывает...
    3. Говнокод заключается в том, что данный код не компилируется.

    P.S. Если видите, что где-то есть дыра, то говорите, возможно я опечатался (злобная администрация исправить не даст), возможно в данном коде плюг опущен, возможно дыра у меня в голове. Конструктивная критика приветствуется.

    P.P.S. Если вы решили просто написать, что (C++ == "говно") is true , то, пожалуйста, прошу вас как людей порядочных и воспитанных, имеющих совесть и ум, пройдите мимо. Если у вас нит ни ума, ни совести, ни порядочности, то можете писать про "естественную говнистость" C++, милости прошу.

    interested, 30 Октября 2009

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

    +66.8

    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
    // Найдено глубоко в продакшн-коде некоего транслятора:
    HRESULT hr = S_OK;
    try {
          hr = ParseSection(sourceTemplate, output, CS_IF);
    }
    CATCH_CG_EXCEPTION(this, hr)
    CATCH_CG_EXCEPTION_END
    
    // далее смотрим определения этих чудо-макросов
    #define CATCH_CG_EXCEPTION(gen, hr) \
    catch (CHierCGException* e)  { \
         (gen)->WriteExceptionMessage(e); \
         if (e->m_bContinue) { \
                if (e->m_useHRESULT) hr = e->m_hResult; else hr = E_FAIL; \
         } \
         delete e; \
         if (!(e->m_bContinue))
    
    #define CATCH_CG_EXCEPTION_END \
          throw; \
    }

    Исключительно говнистая обработка исключений :-)

    Orfest, 27 Октября 2009

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

    +68

    1. 1
    2. 2
    char *GetNumRenderedObjectsString() { char *mString = new char [128]; itoa (mNumRenderedObjects, mString, 10); return mString; };
    char *GetNumDiscardedObjectsString() { char *mString = new char [128]; itoa (mNumDiscardedObjects, mString, 10); return mString; };

    Отличная работа с памятью.

    benin, 25 Октября 2009

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

    +66.7

    1. 1
    2. 2
    mNewFrame->SetName (new char [MAX_TOKEN]);
    strcpy (mNewFrame->GetName(), mXFrame->Attribute("name"));

    Умелая работа со строками....

    benin, 25 Октября 2009

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

    +56.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    bool a,b;
    
    ...
    
    if(a>b)
    {
    ...

    Увидел в одной либе... Си++ странный язык. Паскаль проще...

    1)Скомпилируеться ли?
    2)Что это значит?

    Говногость, 24 Октября 2009

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

    +61.8

    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
    const int size=8;
    
    class Bin
    {
    public:
    	Bin();
    private:
    	char first[size];
    	char second[size];
    };
    
    Bin::Bin()
    {
    	for (int s=0;s<=size;s++, first[s]='0');
    }

    Вот вам смешно? А я пару часов думал почему при заполнении одного вектора меняется другой...

    meriados, 23 Октября 2009

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

    +56.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    UINT aScrollMode = 0;
         m_pScrollH->GetInfo(&aScrollMode, 0, 0);
         if (!(aScrollMode & M_INVISIBLE))
         {
              ...
         }

    Рефакторю довольно большой проект (5 Мб исходников). Единственный способ спросить у контрола (любого из имеющихся) привожу выше.

    Konstantin.Grebenschikov, 22 Октября 2009

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

    +63.6

    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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    class WordCount{
    
    private:
    	string _t;
    	vector <int> _w;
    
    	int wc(){
    		string tw;
    		int s = 0;
    		for(int i = 0; i < _t.size(); ++i){
    			if(_t[i] == ' '){
    				tw.clear();
    				for(int j = s;j < i;++j){
    					tw += _t[j];
    				}
    				
    				size_t z = 0;
    				for(int k = 0; k < i - s; ++k){
    					int jj = 1;
    					for(int d = 0; d < k;  ++d)
    						jj *= 10;
    
    					z += jj * static_cast<int>(_t[k]);
    
    				}
    
    				bool sa = true;
    				for(int az = 0; az < _w.size(); ++az)
    					if(_w[az] == z) sa = false;
    				if(sa)_w.push_back (z);
    
    				s = i+1;
    			}
    		}
    		if(s < _t.size() ){
    			size_t z = 0;
    			for(int k = s;k < _t.size();++k){
    					
    					int jj = 1;
    					for(int d = 0; d < k;  ++d)
    						jj *= 10;
    
    					z += jj * static_cast<int>(_t[k]);
    			}
    
    			bool sa = true;
    				for(int az = 0; az < _w.size(); ++az)
    					if(_w[az] == z) sa = false;
    				if(sa)_w.push_back (z);
    		}
    		return _w.size();
    	}
    
    public:
    
    	int WordCount(string text){
    
    		_t = text;
    
    		return wc();
    
    	}
    };

    Клас, который должен был подсчитывать кол-во уникальных слов в строке.
    Наслаждайтесь, господа!

    hacker-l0maker, 21 Октября 2009

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

    +63.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    void RoomFactory::roomCreated(Siis::Room* room,bool created)
    {
     if(!created)
     {
     rooms_.remove(room->peer()->jid().bare());
     delete room;
     }
    }

    Не индус...

    nesquikm, 19 Октября 2009

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