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

    +169

    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
    if(this->connectionState)
        {
            db_Model->clear();
            db_Model->setTable("lh_chat_archive");
            db_Model->setRelation(6, QSqlRelation("lh_profiles", "id", "last_name"));
            db_Model->setEditStrategy(QSqlRelationalTableModel::OnManualSubmit);
            db_Model->removeColumn(0);
            db_Model->removeColumn(0);
            db_Model->removeColumn(0);
            db_Model->removeColumn(0);
            db_Model->removeColumn(0);
            db_Model->removeColumn(2);
            db_Model->removeColumn(2);
            db_Model->removeColumn(2);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->removeColumn(3);
            db_Model->select();
            db_Model->setHeaderData(0, Qt::Horizontal, trUtf8("Клиент"));
            db_Model->setHeaderData(1, Qt::Horizontal, trUtf8("Менеджер"));
    
            mapper->setModel(db_Model);
            mapper->setItemDelegate(new QSqlRelationalDelegate(this));
        }

    Сотрудник фирмы таким образом избавился от ненужных столбцов в выборке. На вопрос: "А как быть если столбцов много?", ответа не последовало...

    inbush, 30 Сентября 2011

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

    +150

    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
    Люди, помогите решить такой вопрос. Приведу пример: 
       Есть программист Петя. Он прочитал очень много книг по программированию,
    и вообще умный парень :). И, так как, Петя прочитал много умных книг (Александреску к примеру),
    он соответственно пишет умный код, используя различные фишки с++, например,
    очень любит шаблоны (такие вещи типа статического полиморфизма и еще много
    всего связанного с шаблонами и обобщенным программированием) или использует
    сложные тернарные операторы… ну и т.д. … Соответственно код работает и все хорошо. 
    Как-то в разговоре с Петей ему сказали, что если так прогать, то может получиться
    непрозрачный код. 
      На что он ответил: «Если алгоритм написан верно, и Каму-то непонятен код, то
    проблема в том что человек просто плохо образован в плане программирования.
    Ибо кто-то, например, не знает что такое классы и ему будет не прозрачен код,
    в котором используют классы или обычное наследование. И соответственно не
    писать же все процедурно, из-за того, что кто-то не знает что такое классы.
    А само понятие прозрачности кода - ерунда ».
       От сюда вопрос, Прав ли Петя и что такое вообще «Прозрачность кода»?
    Или действительно код не может быть  написан «Заумно», а тот, кто так
    считает, просто плохо знает стандарт языка.

    Вопрос совершенно серьёзный. //Не холивар.

    CPPGovno, 29 Сентября 2011

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

    +167

    1. 1
    2. 2
    for(byte i = 3;i<129;++i)
      (state.programImpl[i])(state);

    Мне достался на поддержку этот проект. Это основной цикл программы, хотя их несколько. Есть некоторый массив, заполненный алгоритмом программыфункциями через

    PI programImpl= {
    beginPrg,
    //...
    };
    В зависимости от выполнения различных условий state.programImpl самомодифицируется во время выполнения этого цикла. Мне хочется сказать: "Возьми Lisp и никогда более не берись за С++!". А вообще, в этом проекте эта самомодификация просто не нужна. А теперь вопрос: "Что у человека с головой?"

    Говногость, 29 Сентября 2011

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

    +178

    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
    static long get_ver(unsigned short *src, unsigned char *dst)
    {
    	u8 tmp_buf[16];
    	s32 i = 0;
    
    	while(1)
    	{
    		if(dst[i] < '0' ||  dst[i] > '9')
    			break;
    
    		tmp_buf[i] = dst[i] % 0x30;
    		i++;
    	}
    
    	if(i == 1)
    		*src = tmp_buf[0];
    	else if(i == 2)
    		*src = (tmp_buf[0] * 10) + tmp_buf[1];
    	else if(i == 3)
    		*src = (tmp_buf[0] * 100) + (tmp_buf[1] * 10) + tmp_buf[2];
    	else if(i == 4)
    		*src = (tmp_buf[0] * 1000) + (tmp_buf[1] * 100) + (tmp_buf[2] * 10) + tmp_buf[3];
    
    	return i;
    }

    Функция читает из dst и пишет в src O_O

    mors, 28 Сентября 2011

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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    void __fastcall TManageForm::bAnyCentralizerClick(TObject *Sender)
    {
    TBitBtn *Item = dynamic_cast<TBitBtn *>(Sender);
    int bit=0;	// по умолчанию - схват продольной, выход 0 платы 1
    
    if ( Item->Name == bThicknessCentralizer->Name)
    	bit=6;	// если схват толщины - выход 6 платы 1
    
    if (Item->Caption==centr_open)
    	bit++;	// "разжать" - всегда следующий выход после сжать
    a1->SetOutBit(bit);
    }

    Выставление дискретного выхода по дебильному алгоритму. Хотел как лучше, а получилось как всегда)))

    phys-tech, 28 Сентября 2011

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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    void f_ai(intrusive_ptr<serial> i);
    //...
    static serial ai;
    serial* ii=&ai;
    //...
    f_ai(ii);

    Компилируется, а потом грохается. С++ такой Си...

    CKrestKrestGovno, 25 Сентября 2011

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    temp = new LIST;
    temp = ptr->next;
    ptr->next = ptr;
    ptr = temp;

    Так меняют указатели местами при сортировке списка.

    brainfucker, 25 Сентября 2011

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

    +160

    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
    #if !defined(_CONSOLE) && !defined(BOOTSTRAP_AGENT)
     g_scheduler.Init(&g_Schedule);
    #endif
    #if (defined(UNDER_CE) || defined(MC_AGENT)) && !defined(BOOTSTRAP_AGENT) /*&& !defined(_CONSOLE) */&& !defined(MC_APM_AGENT)
     m_collector.InitializeFromPDB(/*GetPdbFile()*/);
    #endif
    #if (defined(UNDER_CE) || defined(MC_AGENT)) && !defined(BOOTSTRAP_AGENT) && !defined(_CONSOLE) && !defined(MC_APM_AGENT)
     m_Alert.InitializeFromPDB();
    #endif
    #if !defined( _CONSOLE ) && !defined(BOOTSTRAP_AGENT)
     g_ScheduleEngine.Add( this ); // install scheduler
    #endif
    #if !defined(BOOTSTRAP_AGENT) && !defined(MC_APM_AGENT) && !defined(PRINTER_AGENT)
     g_manager.LoadFromPDB();
    #endif
    
    #if (defined(UNDER_CE) && !defined(BOOTSTRAP_AGENT)) || (defined(MC_AGENT) && !defined(_CONSOLE))
     WriteMCConnectionStatus(MCA_CONN_STATUS_INITIALIZING);
    #endif
     ASSERT(pData != NULL);
     DWORD dwRetries = 0;
    
     bool bFirstDevPkgInstalled = false; // for HHI agent only
     while (pData->nTask != PDT_QUIT)
     {
    #ifdef HHI_AGENT
    ..............

    без комментариев

    Alek86, 22 Сентября 2011

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    int excpt[]={03, 03, 03, 00};
    //...
    typedef int tex[sizeof(excpt)/sizeof(excpt[0])];
    typedef tex& texr;
    //... 
    throw texr(excpt);

    Уж сразу массив кидали, как исключение. Зря мелочились...

    Говногость, 22 Сентября 2011

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

    +160

    1. 1
    http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T

    Часовая презентация Герб Саттера о будущем C++.
    От себя хочется добавить: "Где здесь С++, Герб Саттер?"

    CPPGovno, 22 Сентября 2011

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