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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    uint64_t search(StringList& who, const string& aName, const string& aSize,TypeModes aTypeMode, SizeModes aSizeMode, const string& aToken, const StringList& aExtList, void* aOwner = NULL) 
    {
        return search(who, aName, Util::toInt64(aSize), aTypeMode, aSizeMode, aToken, aExtList,aOwner);
    }

    А теперь небольшой _опрос_ :
    Каково, по вашему мнению, необходимое и достаточное
    качество и количество параметров метода/функции, при котором необходимо(по самым разным причинам) объединять их(параметры) в _меньшее_количество_ , используя встроенные/пользовательские типы данных.
    Например: https://github.com/negativ/eiskaltdcpp/blob/master/dcpp/SearchManager.h

    sayidandrtfm, 10 Сентября 2011

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

    +161

    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
    template<typename T,typename FIELD_T>
    struct type_has_field{
      typedef char yes_type;
      struct no_type{char padding[8];};
      template<class U>
      static yes_type check_sig1(
        U*,
        FIELD_T(U::*)=&U::field          // !!!Most importantly!!!
      );
      template<class U>
      static no_type check_sig1(...);
      static const bool value=sizeof(check_sig1<T>(0))==sizeof(yes_type);
    };

    http://www.gamedev.ru/code/forum/?id=152200

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

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

    +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
    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
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    >>>http://www.sql.ru/forum/actualthread.aspx?bid=21&tid=584106&hl=
    if(ii==2) {
    		GetDlgItem(IDC_COLMAP_BUTTON3)->GetWindowRect(&lpRect);
    			m_stcSTSign2.SetBkColor(dwColorTip[2]);
    		}
    		if(ii==3) {
    			GetDlgItem(IDC_COLMAP_BUTTON4)->GetWindowRect(&lpRect);
    			m_stcSTSign3.SetBkColor(dwColorTip[3]);
    		}
    		if(ii==4) {
    			GetDlgItem(IDC_COLMAP_BUTTON5)->GetWindowRect(&lpRect);
    			m_stcSTSign4.SetBkColor(dwColorTip[4]);
    		}
    		if(ii==5) {
    			GetDlgItem(IDC_COLMAP_BUTTON6)->GetWindowRect(&lpRect);
    			m_stcSTSign5.SetBkColor(dwColorTip[5]);
    		}
    		if(ii==6) {
    			GetDlgItem(IDC_COLMAP_BUTTON7)->GetWindowRect(&lpRect);
    			m_stcSTSign6.SetBkColor(dwColorTip[6]);
    		}
    		if(ii==7) {
    			GetDlgItem(IDC_COLMAP_BUTTON8)->GetWindowRect(&lpRect);
    			m_stcSTSign7.SetBkColor(dwColorTip[7]);
    		}
    		if(ii==8) {
    			GetDlgItem(IDC_COLMAP_BUTTON9)->GetWindowRect(&lpRect);
    			m_stcSTSign8.SetBkColor(dwColorTip[8]);
    		}
    		if(ii==9) {
    			GetDlgItem(IDC_COLMAP_BUTTON10)->GetWindowRect(&lpRect);
    			m_stcSTSign9.SetBkColor(dwColorTip[9]);
    		}
    		if(ii==10) {
    			GetDlgItem(IDC_COLMAP_BUTTON11)->GetWindowRect(&lpRect);
    			m_stcSTSign10.SetBkColor(dwColorTip[10]);
    		}
    		if(ii==11) {
    			GetDlgItem(IDC_COLMAP_BUTTON12)->GetWindowRect(&lpRect);
    			m_stcSTSign11.SetBkColor(dwColorTip[11]);
    		}
    		if(ii==12) {
    			GetDlgItem(IDC_COLMAP_BUTTON13)->GetWindowRect(&lpRect);
    			m_stcSTSign12.SetBkColor(dwColorTip[12]);
    		}
    		if(ii==13) {
    			GetDlgItem(IDC_COLMAP_BUTTON14)->GetWindowRect(&lpRect);
    			m_stcSTSign13.SetBkColor(dwColorTip[13]);
    		}
    		if(ii==14) {
    			GetDlgItem(IDC_COLMAP_BUTTON15)->GetWindowRect(&lpRect);
    			m_stcSTSign14.SetBkColor(dwColorTip[14]);
    		}
    		if(ii==15) {
    			GetDlgItem(IDC_COLMAP_BUTTON16)->GetWindowRect(&lpRect);
    			m_stcSTSign15.SetBkColor(dwColorTip[15]);
    		}
    		if(ii==16) {
    			GetDlgItem(IDC_COLMAP_BUTTON17)->GetWindowRect(&lpRect);
    			m_stcSTSign16.SetBkColor(dwColorTip[16]);
    		}
    		if(ii==17) {
    			GetDlgItem(IDC_COLMAP_BUTTON18)->GetWindowRect(&lpRect);
    			m_stcSTSign17.SetBkColor(dwColorTip[17]);
    		}
    		if(ii==18) {
    			GetDlgItem(IDC_COLMAP_BUTTON19)->GetWindowRect(&lpRect);
    			m_stcSTSign18.SetBkColor(dwColorTip[18]);
    		}
    ----------------------------------------------------------------
    P.S
    IDC_COLMAP_BTN_BASE 1000
    ...
    IDC_COLMAP_BUTTON12 1012
    IDC_COLMAP_BUTTON13 1013
    IDC_COLMAP_BUTTON14 1014
    
    ... f(int i)
    {
    	GetDlgItem(IDC_COLMAP_BTN_BASE + i)->GetWindowRect(&lpRect);
    	arr.at(i).SetBkColor(dwColorTip[i]);
    }

    183cf58a76d94b9e, 09 Сентября 2011

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

    +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
    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
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    HRESULT GetOutlookVersionString(LPSTR* ppszVer, BOOL* pf64Bit)
    {
        HRESULT hr = E_FAIL;
        LPSTR pszTempPath = NULL;
        LPSTR pszTempVer = NULL;
        TCHAR pszaOutlookQualifiedComponents[][MAX_PATH] = {
            TEXT("{1E77DE88-BCAB-4C37-B9E5-073AF52DFD7A}"), // Outlook 2010
            TEXT("{24AAE126-0911-478F-A019-07B875EB9996}"), // Outlook 2007
            TEXT("{BC174BAD-2F53-4855-A1D5-0D575C19B1EA}")  // Outlook 2003
        };
    
        int nOutlookQualifiedComponents = _countof(pszaOutlookQualifiedComponents);
        int i = 0;
        DWORD dwValueBuf = 0;
        UINT ret = 0;
    
        *pf64Bit = FALSE;
    
        for (i = 0; i < nOutlookQualifiedComponents; i++)
        {
            ret = MsiProvideQualifiedComponent(
                pszaOutlookQualifiedComponents[i],
                TEXT("outlook.x64.exe"),
                (DWORD) INSTALLMODE_DEFAULT,
                NULL,
                &dwValueBuf);
            if (ERROR_SUCCESS == ret) break;
        }
    
        if (ret != ERROR_SUCCESS)
        {
            ret = MsiProvideQualifiedComponent(
                pszaOutlookQualifiedComponents[i],
                TEXT("outlook.exe"),
                (DWORD) INSTALLMODE_DEFAULT,
                NULL,
                &dwValueBuf);
        }
        else
        {
            *pf64Bit = TRUE;
        }
    
        if (ret == ERROR_SUCCESS)
        {
            dwValueBuf += 1;
            pszTempPath = (LPSTR) malloc(dwValueBuf * sizeof(TCHAR));
    
            if (pszTempPath != NULL)
            {
                if ((ret = MsiProvideQualifiedComponent(
                    pszaOutlookQualifiedComponents[i],
                    TEXT("outlook.exe"),
                    (DWORD) INSTALLMODE_EXISTING,
                    pszTempPath,
                    &dwValueBuf)) != ERROR_SUCCESS)
                {
                    goto Error;
                }
    
                pszTempVer = (LPSTR) malloc(MAX_PATH * sizeof(TCHAR));
                dwValueBuf = MAX_PATH;
                if ((ret = MsiGetFileVersion(pszTempPath,
                    pszTempVer,
                    &dwValueBuf,
                    NULL,
                    NULL))!= ERROR_SUCCESS)
                {
                    goto Error;    
                }
                *ppszVer = pszTempVer;
                pszTempVer = NULL;
                hr = S_OK;
            }
        }
    
    Error:
        free(pszTempVer);
        free(pszTempPath);
        return hr;
    }

    Говнокод от САМОГО Билли... 21 век на дворе, а у нас в C++ коде goto Error написано (точнее - накакано).
    Источник - http://msdn.microsoft.com/en-us/library/dd941331.aspx

    kVolt, 09 Сентября 2011

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

    +162

    1. 1
    2. 2
    if (suspended())
      resume();

    http://www.gamedev.ru/code/forum/?id=152077

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

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

    +164

    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
    >>>http://www.viva64.com/ru/a/0023/
    #ifdef DEBUG_MODE
      #define WriteLog printf
    #else
      inline int StubElepsisFunctionForLog(...) { return 0; }
      static class StubClassForLog {
      public:
        inline void operator =(size_t) {}
      private:
        inline StubClassForLog &operator =(const StubClassForLog &)
          { return *this; }
      } StubForLogObject;
      
      #define WriteLog \
        StubForLogObject = sizeof StubElepsisFunctionForLog
    #endif
      WriteLog("Coordinate = (%d, %d)\n", x, y);
    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    ССЗБ?
    P.S #define WriteLog(...) 
                or 
        #define WriteLog __noop

    dc9e6c73ef5541f1, 05 Сентября 2011

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

    +175

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (l1->Initilalize("4D353141",true))
    	StatusBarBottom->Panels->Items[2]->Text="Плата XXX загружена";
    else StatusBarBottom->Panels->Items[2]->Text="Не обнаружена плата L791, ном. 4D353141";
    
    if (l1->Initilalize("4D353129",true))
    	StatusBarBottom->Panels->Items[2]->Text="Платы XXX загружены";
    else StatusBarBottom->Panels->Items[2]->Text="Не обнаружена плата XXX, ном. 4D353129";
    
    if (l1->Initilalize("4D353129",true) && l1->Initilalize("4D353129",true) )
    	StatusBarBottom->Panels->Items[2]->Text="Загружены две платы XXX";

    Копипаста - враг программиста. Чувак инициализировал одну плату 4 раза!!!

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

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    inline float _read_zbuf(int x, int y){
      float v;
      glReadPixels(x,screen.height-y+1,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&v);
      return v;
    }

    >Для определения жизни под мышкой решил использовать изменение значений в буфере глубины, но glGetPixels уронил мне фпс на 300, и это один вызов финальной проверки, а что будет когда объекты проверятся начнут подумать страшно.
    Неужели все так плохо ???

    http://www.gamedev.ru/code/forum/?id=151921

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

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

    +170

    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
    assert( top( o-------o
                 |L       \
                 | L       \
                 |  o-------o
                 |  !       !
                 !  !       !
                 o  |       !
                  L |       !
                   L|       !
                    o-------o ) == ( o-------o
                                     |       !
                                     !       !
                                     o-------o ) );

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

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

    +164

    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
    ULONG LCard791::SetChn(int _gain,int _channel)
    {
    		ULONG ret;
    		if(isDiff)
    				ret=_channel&15;
    		else
    		{
    				ret=_channel&31;
    				ret|=1<<5;
    		}
    		int gain;
    		switch(_gain)
    		{
    		case 1:
    				gain=0;
    				break;
    		case 2:
    				gain=1;
    				break;
    		case 4:
    				gain=2;
    				break;
    		case 8:
    				gain=3;
    				break;
    		case 16:
    				gain=4;
    				break;
    		case 32:
    				gain=5;
    				break;
    		case 64:
    				gain=6;
    				break;
    		case 128:
    				gain=7;
    				break;
    		default:
    				gain=0;
    		}
    		ret|=gain<<6;
    		return(ret);
    }

    Есть у нас один мужик, которые такие шедевры творит. Хакер сновидений, РАГ - мы с тобой!

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

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