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

    +66

    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
    //Функция перевода с std::string в System::String; .netFramework 3.5  
     
     String^ stringToString(string str)
                   {
                        TextBox^ strS=gcnew TextBox;
                        strS->Clear();
                        string cmps="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя";
                        TextBox^ cmpS=gcnew TextBox;
                        cmpS->Text="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя";
                        for(int i=0;i<str.size();i++)
                        {
                             for(int j=0;j<cmps.size();j++)
                             {          
                                  if(str[i]==cmps[j])strS->Text=strS->Text+cmpS->Text->Substring(j,1); 
                             }
                        }
                        return strS->Text;
                   }

    он работает :)))

    idec, 03 Марта 2010

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

    +73.5

    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
    //...                            
                                           }
    
                                        }
                                      }
                                      if(found) break;
                                    }
                                  }
                                  aStr=wcstok(NULL,m_cmdSEP);
                                }
                              }
                            }
                          }
                        }
                      }
                      else NoDeviceErrorActive(1);
                    }
                  }
                }
                else NoDeviceErrorActive(1);
              }
            }
          }
        }
      }
    //...

    Кусочек функции, сегодня наткнулся, сама функция занимает 540 строк, все методы класса -- 8000 =). И форматирование оригинальное -- не табами, а двумя пробелами =) . Мне нужно было просто посмотреть, как этот класс одну штуку делает, и я теперь сижу счастливый и думаю, как хорошо, что не мне этот код поддерживать =)

    ISith, 03 Марта 2010

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

    +144.9

    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
    bool userNameChanged = true;
    bool passwordChanged = true;
    
    if(userNameChanged)
    {
    	// какие-то операции
    }
    
    if(passwordChanged)
    
    {
    	// ещё какие-то операции
    }

    Вот ещё один код от нашего шефа-индуса...

    Highlander, 27 Февраля 2010

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

    +60.9

    1. 1
    return ((Dirty = (Buff = ((uint8 *)realloc (Buff, BuffLen = new_len))) !=0));

    sagol, 26 Февраля 2010

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

    +144.9

    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
    class SmoothingModeManager
    {
    public:
    	SmoothingModeManager(Context* context, Gdiplus::SmoothingMode mode = Gdiplus::SmoothingModeHighQuality);
    	virtual ~SmoothingModeManager();
    	
    protected:
    	Context* context_;		
    };
    
    ////////////////////////
    
    SmoothingModeManager::SmoothingModeManager(Context* context, Gdiplus::SmoothingMode mode)
    : context_(context)
    {
    	context_->getCanvas()->SetSmoothingMode(mode);
    }
    
    
    SmoothingModeManager::~SmoothingModeManager()
    {
    	context_->getCanvas()->SetSmoothingMode(Gdiplus::SmoothingModeNone);
    }

    Инициализируем класс и контекст со сглаживанием до конца метода.

    Altravert, 26 Февраля 2010

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

    +45.6

    1. 1
    return (hWnd) ? (bool)ShowWindow(hWnd, (state) ? SW_NORMAL : SW_HIDE) : false;

    Я долго пытался понять, что я имел ввиду.

    Altravert, 24 Февраля 2010

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

    +59

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    QByteArray icqMessage::convertToByteArray(const quint8 &d)
    {
    	QByteArray packet;
    	packet[0] = d;
    	return packet;
    }

    Обнаружено в сорцах qutim'а. Про memcpy разработчики, видимо, не слышали, также, как и про метод append() в классе QByteArray.
    А еще не совсем понятно, зачем функции для конвертирования байт-эррэев в цифры и обратно объявлены и реализованы В КАЖДОМ файле, где используются. Про #include файла, в котором один раз можно реализовать все функции, разработчики, наверное, тоже слышали мельком.

    RankoR, 23 Февраля 2010

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

    +65.5

    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
    BOOL needToCenter = NO;
    float touchedDistance = [self getTouchedDistance];
    
    if(movedFromX < movedToX)
    {
    	if(!isIncreased)
    	{
    		needToCenter = YES;
    	}
    }
    else
    {
    	if(!isIncreased)
    	{
    		needToCenter = YES;
    	}
    }

    ohoncharuk, 22 Февраля 2010

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

    +69.5

    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
    #include <iostream>
    using namespace std;
    class MyException
    {
    public:
    	MyException(char *msg) { m_msg = msg; }
    	~MyException(){}
    	char *GetError(){return m_msg;}
    protected:
    	char *m_msg;
    };
    
    int main()
    {
    	int *buffer;
    	try
    	{
    		buffer = new int[255];
    		if (buffer == NULL)
    		{
    			MyException *exception = 
    					new MyException("Memory allocation failed!");
    			throw exception;
    		}
    		else
    			delete buffer;
    	}
    	catch (MyException *exception)
    	{
    		char *msg = exception->GetError();
    		cout << msg << endl;
    	}
    return 0;
    
    }

    Книга "Использование Viusal C++" Кейт Грегори. Глава 24 о предотвращении утечек памяти и работе с исключениями.

    ccoder, 20 Февраля 2010

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

    +65.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
    template <class T>
    struct SLinkedListNode
    {
    public:
    	SLinkedListNode* m_pPrev;  ///<  Pointer to previous node.
    	SLinkedListNode* m_pNext;  ///<  Pointer to next node.
    	int Initialize();
    	int Finalize();
    };
    ...
    struct SWaiterNode : public SLinkedListNode<SContainerNode>, public SLinkedListNode<SWaiterListNode>
    {
    ...
    // container node
    struct SContainerNode
    {
    	// no members needed yet (just for masking SLinkedListNode type)
    };
    
    // container
    struct SContainer
    {
    public:
    	SLinkedListNode<SContainerNode>* m_pObjects;

    сначала делаем тимплейтный класс, параметр которого никому не нужен, а потом делаем заглушку для этого параметра.
    нормально.

    kubrinsky, 19 Февраля 2010

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