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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    QString sq(int deep, QString table, QString field, bool fin = false){
         if(fin) return sq(deep, table, field)+ ";";
         if(!deep) return "select min(" + field + ") from " + table;
        return "select " + field + " from " + table + " where " + field + " in(" + sq(deep-1, table, field)  + ")";
    }

    Так изнутри клиентского кода двоичным поиском выясняется, какое у БД ограничение на количество вложенных подзапросов.

    kit, 14 Июня 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    bool GenerateException(int Code)
    {
       assert(false);
       return false;            //WTF???       Нужно перерефакторить.
    };

    Ещё одно проектное решение...

    Говногость, 13 Июня 2010

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    char *ptr1;
    char *ptr2;
    //...
    try {
        throw ptr2 - ptr1;
      }
      catch (int e) {
        std::cout << "exception addr dif" << e << std::endl;
      }

    Говногость, 13 Июня 2010

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

    +152

    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
    typedef signed int s32;
    
    //...
    
    void SomeStruct::SomeFunc(const char* ipImageName /*, ... */ )
    {
    	// ...
    
    	s32 imageNameSize = strlen(ipImageName) * sizeof(char) + 1;
    	this->mpImageName = new char[imageNameSize];
    	strcpy(this->mpImageName, ipImageName);
    	
    	// ...
    }

    А теперь представим, что вместо char будет wchar_t... ...автор - лид-программист...

    Kirinyale, 13 Июня 2010

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

    +158

    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
    #include <math.h>
    #include <stdio.h>
    double zero = 0, three = 3, four = 4;
    class Complex
         {
            public:
            double &x, &y;
            Complex() : x(zero), y(zero) { }
            Complex( double &z ) : x(y), y(z) { }
            Complex( double &_x, double &_y ) : x(_x), y(_y) { }
         };
         double square( double const &x ) { return x * x; }
         double absValue( Complex &c ) { return sqrt( square(c.x)+square(c.y) ); }
         int main()
         {
             Complex c(four);
             printf( "absolute value is %g\n", absValue( c ) );
             return 0;
         }

    говно отсюда http://www.gimpel.com/html/bugs.htm

    xXx_totalwar, 13 Июня 2010

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

    +158

    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
    double** QRSLAU_check(matrix n1, matrix n0, double eps){
        double** x;
        x = (double**) calloc(2,sizeof(double*));
        x[0]= (double*) calloc(n1.i,sizeof(double));
        x[1]=(double*) calloc(n1.i,sizeof(double));
        for (int a=0; a<n1.i; a++){ x[0][a]=1; x[1][a]=1;}
    
        for (int a=0; a<n1.i; a++)
            for (int b=a+1; b<n1.i; b++)
                if(n1.M[b][a]>eps || n1.M[b][a]<-eps) x[0][a]=0;
        for (int a=0; a<n1.i-1; a++)
            if(((n1.M[a][a]+n1.M[a+1][a+1])-(n0.M[a][a]+ n0.M[a+1][a+1]))>eps ||
               ((n1.M[a][a]+n1.M[a+1][a+1])-(n0.M[a][a]+ n0.M[a+1][a+1])) <-eps ||
               ((sqrt(-(n1.M[a][a]*n1.M[a][a]+ n1.M[a+1][a+1]*n1.M[a+1][a+1]-2*n1.M[a+1][a+1]*n1.M[a][a]+4*n1.M[a][a+1]*n1.M[a+1][a])))-
                (sqrt(-(n0.M[a][a]*n0.M[a][a]+ n0.M[a+1][a+1]*n0.M[a+1][a+1]-2*n0.M[a+1][a+1]*n0.M[a][a]+4*n0.M[a][a+1]*n0.M[a+1][a]))))>eps ||
               ((sqrt(-(n1.M[a][a]*n1.M[a][a]+ n1.M[a+1][a+1]*n1.M[a+1][a+1]-2*n1.M[a+1][a+1]*n1.M[a][a]+4*n1.M[a][a+1]*n1.M[a+1][a])))-
                (sqrt(-(n0.M[a][a]*n0.M[a][a]+ n0.M[a+1][a+1]*n0.M[a+1][a+1]-2*n0.M[a+1][a+1]*n0.M[a][a]+4*n0.M[a][a+1]*n0.M[a+1][a]))))<-eps){
            x[1][a]=0;
            if(a==n1.i-2)x[1][a+1]=0;
        }
        else a++;
        return x;
    }

    какая-та штука для QR-алгоритма и поиска собственных значений

    Shiz89, 09 Июня 2010

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

    +178

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #ifndef TSTACK_H
    #define TSTACK_H
    
    #include &lt;iostream.h&gt;
    
    using namespace std
    
    template.......

    Это начало программы "самостоятельно" написаной от руки на бумажке студентом с целью получения зачета по объектно ориентированному программированию. Дальше я читать не стал

    klavdiev, 09 Июня 2010

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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for (int i = 0; i < m_pTableWidget->rowCount(); i++) {
            m_pFilterList->addFilter(m_pTableWidget->item(i, 0)->text(), 
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 1)))->currentText(),
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->itemData((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentIndex()).toString(),
                                     m_pTableWidget->item(i, 3)->text(),
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 4)))->itemData((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 4)))->currentIndex()).toString(),
                                     ((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("конца") ? "'%" : (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("любой") ? "'%" : "'"),
                                     ((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("начала") ? "%'" : (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("любой") ? "'%" : "'")
                                     );
        }

    Вот так вот брутально выглядит код "в одну строчку"

    JC_NVKZ, 08 Июня 2010

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

    +157

    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
    void foo()
    {
     if (!wxFile::Exists(defDir + resourcePath)) return false;
     HBITMAP *bmp = new HBITMAP;
     wxString path = defDir + resourcePath;
     (*bmp) = (HBITMAP)LoadImage(0, path.c_str(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
     if (bmp != NULL) (*pMap)[resourceName] = bmp; else return false;
     return true;
    }
    
    bool SXXXXBitmapStorage::releaseItem(wxString resourceName)
    {
     ScrollBitmapHash::iterator iterator = pMap->find(resourceName);
     if (iterator == pMap->end()) return false;
     if (iterator->second != NULL) delete (HBITMAP*)iterator->second;
     pMap->erase(resourceName);
     return true;
    }
    
    HDC* SXXXXBitmapStorage::adjustToDC(wxString resourceName)//we must delete this object
    {
     HBITMAP *bmp = this->getItem(resourceName);
     if (bmp == NULL) return NULL;
     HDC *pDC = new HDC();
     (*pDC) = CreateCompatibleDC(0);
     SelectObject(*pDC, *bmp);
     return pDC;
    }

    И вы не поверите, этот код работал! Правда, конечно же, была утечка ресурсов

    Hsilgos, 07 Июня 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Allow* AccessSection::check(CONNECTION * connection, char *username, char *password)
    {
    ...
                    if (current->username != "" && username != "" && current->username != username)
                            continue;
    ...

    Кусок кода из прокси-сервера Shweby

    gpr, 07 Июня 2010

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