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

    +1012

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void Transponse()                                       // Транспонировать матрицу
       {
          m12 = m21; m13 = m31; m14 = m41;
          m21 = m12; m23 = m32; m24 = m42;
          m31 = m13; m32 = m23; m34 = m43;
          m41 = m14; m42 = m24; m43 = m34;
       }

    Artur, 31 Января 2012

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

    +153

    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
    // static_lit.h
    #ifndef __STATIC_LIT__
    #define __STATIC_LIT__
    
    namespace
    { 
      namespace Toast
      { 
        namespace Detail
        {  
          template<int UNIT_LOCAL_UID> 
          struct TUnitUniqueId
          { 
              static int sGloballyUniqueVar; 
          }; 
     
          template<int UNIT_LOCAL_UID> 
          int TUnitUniqueId<UNIT_LOCAL_UID>::sGloballyUniqueVar = 0;
        } 
      } 
    } 
     
    #define GEN_UID_IMPL(line) &Toast::Detail::TUnitUniqueId<line>::sGloballyUniqueVar
    //#define GEN_UID GEN_UID_IMPL(__LINE__)
    #define GEN_UID GEN_UID_IMPL(__COUNTER__)
    // В оригинале тут было __LINE__, однако в $тудии, сконфигурированной
    // под билд в неком специфическом сдк, __LINE__ почему-то не опознавалось
    // в качестве константы и не принималось в шаблон. Пришлось заменить её
    // на менее портабельный, но работоспособный и, кстати, более уместный
    // в этом качестве __COUNTER__.
    
    template<class T,int* UID> 
    struct StaticLit
    {
      static T &Get (const char *str)
      {
        static T instance (str); // простейший случай для примера,
        // вы без труда адаптируете его к использованию синглтонов
        // и прочих премудростей
        return instance;
      }
    };
      
    #define SLTR_IMPL2(T,unique_id) StaticLit<T,unique_id>
    #define SLTR_IMPL(T) SLTR_IMPL2(T,GEN_UID)
    
    #define SLTR(T,str) (SLTR_IMPL(T)::Get (str))
    
    #endif // __STATIC_LIT__

    Настоящий Статический Литерал на С++
    http://www.gamedev.ru/flame/forum/?id=158006
    извените за игрострой

    TarasB, 31 Января 2012

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

    +1000

    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
    if(m_numberColors>1)
    	{
    		m_colorComboColor2.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor2.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>2)
    	{
    		m_colorComboColor3.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor3.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>3)
    	{
    		m_colorComboColor4.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor4.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>4)
    	{
    		m_colorComboColor5.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor5.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>5)
    	{
    		m_colorComboColor6.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor6.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>6)
    	{
    		m_colorComboColor7.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor7.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>7)
    	{
    		m_colorComboColor8.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor8.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>8)
    	{
    		m_colorComboColor9.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor9.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>9)
    	{
    		m_colorComboColor10.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor10.ShowWindow(SW_HIDE);
    	}

    Есть десять элементов!
    Нужно в зависимости от числа управлять видимостью.
    Страшно подумать если бы их было 1000!!!!

    alex_devel, 31 Января 2012

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

    +994

    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
    int GetLocaleImageIndexById(LCID LocaleID)
    {
    	CString Id = CPiCultureInfo::GetSpecific(LocaleID).GetISO3166Country().MakeLower();
    	if (Id == "ad") return 0;
    	if (Id == "ae") return 1;
    	if (Id == "af") return 2;
            .
            .
            .
            .
            .
    	if (Id == "zm") return 245;
    	if (Id == "zw") return 246;
    	return -1;
    }

    Слов нет

    alex_devel, 31 Января 2012

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

    +142

    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
    #include <iostream>
    
    using namespace std;
    
    int main()
    {   
        int i, n;
        cin >> n;
        int A[n];
        for(i = 0; i < n; i++)
            cin >> A[i];
        for(i = 0; i < n - 1; i++)
            swap (A[i], A [n - i + 1]); 
        for(i = 0; i < n; i++)
            cout << A[i] << " "; 
        return 0;
    }

    Помогите! Должен выводить числа массива в обратном порядкеБ а он не выводит!

    Smirnov_Alex, 30 Января 2012

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

    +994

    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
    template< typename _Data >
    void 
    Foo< _Data >::deduceNumberOfSignificant( _Data _field )
    {
    	switch( sizeof( _Data ) )
    	{
    	case sizeof( field32 ):
    		m_significantNumber = 7;
    		break;
    	case sizeof( field64 ):
    		m_significantNumber = 16;
    		break;
    	case sizeof( field128 ):
    		m_significantNumber = 34;
    		break;
    	default:
    		BOOST_ASSERT( "Improper field size" );
    	}
    }

    kiry, 30 Января 2012

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

    +159

    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
    //Перевод в 2/10 систему
    BOOL
    CChannel::DecTo2Dec(UCHAR Dec,
    					CHAR *Dec2)
    {
    	TCHAR digitstring[10] = {0};
    	INT	Hi = 0;
    	INT	Lo = 0;
    
    	_stprintf_s(digitstring,TEXT("%d"),Dec);
    	INT digitstringLen = _tcslen(digitstring);
    	Lo = _ttoi(digitstring + 1);
    	*(digitstring + 1) = 0;
    	Hi = _ttoi(digitstring);
    	
    	if(digitstringLen>1)
    	{
    		*Dec2 = Lo + Hi * 0x10;
    	}
    	else
    		*Dec2 = Hi;
    	return TRUE;
    }

    Перевод в BCD через строку!

    azote, 27 Января 2012

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

    +1000

    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
    class set_ftp: public QObject
    {
    public:
        typedef class impl_set_ftp: QObject
        {
            QString url     ;
            QString login   ;
            QString password;
            QString siis    ;
            QString ssm     ;
            QString ssl     ;
            QString url_siis;
            QString url_ssm ;
            QString url_ssl ;
    
            friend class set_ftp;
            impl_set_ftp(QObject* p): QObject(p) {}
        } Impl;
    
        inline QString& url     () const {return impl->url     ;}
        inline QString& login   () const {return impl->login   ;}
        inline QString& password() const {return impl->password;}
        inline QString& siis    () const {return impl->siis    ;}
        inline QString& ssm     () const {return impl->ssm     ;}
        inline QString& ssl     () const {return impl->ssl     ;}
        inline QString& url_siis() const {return impl->url_siis;}
        inline QString& url_ssm () const {return impl->url_ssm ;}
        inline QString& url_ssl () const {return impl->url_ssl ;}
    
        inline void set_url     (const QString& _url     ) {impl->url      = _url     ;}
        inline void set_login   (const QString& _login   ) {impl->login    = _login   ;}
        inline void set_password(const QString& _password) {impl->password = _password;}
        inline void set_siis    (const QString& _siis    ) {impl->siis     = _siis    ;}
        inline void set_ssm     (const QString& _ssm     ) {impl->ssm      = _ssm     ;}
        inline void set_ssl     (const QString& _ssl     ) {impl->ssl      = _ssl     ;}
        inline void set_url_siis(const QString& _url_siis) {impl->url_siis = _url_siis;}
        inline void set_url_ssm (const QString& _url_ssm ) {impl->url_ssm  = _url_ssm ;}
        inline void set_url_ssl (const QString& _url_ssl ) {impl->url_ssl  = _url_ssl ;}
    
        set_ftp()          : QObject(0), impl(new Impl(this)) {}
        set_ftp(QObject* p): QObject(p), impl(new Impl(this)) {}
    private:
        Impl* impl;
    };

    Код написанный человеком, считающим себя "гуру разработки программирования", а так же "активным научным деятелем".
    Главная мысль глядя на это у меня - охренное тестовое задание с вопросом - укажите абсолютно все бредни в этом коде, но разумеется в более нормальной формулировке... а чО - неплохой тест...
    з.ы. этот же человек никогда не пишет cpp файлы все в хедерах собачит....

    LuCiFer, 27 Января 2012

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

    +148

    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
    #include <iostream.h>
    
    typedef short *(*bar2)(double);
    
    typedef char *(*bar3)();
    
    typedef long long int **(* bar5)();
    
    typedef bar5 (** bar4)(bar3);
    typedef bar4 (** bar1)(bar2);
    
    
    typedef long long int *(*(*(*(*(**bar0)(short *(*)(double ))))(char *(*)()))());
    
    
    long long int ** func5()
    {
    	static long long int  A = 42;
    	static long long int* B = &A;
    	return &B;
    }
    
    char* func3()
    {
    	return new char;
    }
    
    bar5 func4(bar3 A)
    {
    	return &func5;
    }
    
    short* fun2(double A)
    {
    	return new short;
    };
    
    bar4 fun1(bar2 A){
    	static void* p = &func4;
    	return (bar4)&p;
    }
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
    	void* p = &fun1;
    
    	bar0 foo0 = (bar1)&p;
    	bar1 foo1 = (bar1)&p;
    
    	long long int ** pr1 = (*(*(*foo1)(&fun2))(&func3))();
    	long long int ** pr0 = (*(*(*foo0)(&fun2))(&func3))();
    
    	std::cout<<**pr1<<std::endl;
    	std::cout<<**pr0<<std::endl;
    	std::cin.get();
    
    	return 0;
    }

    разбирался с указателями на функции

    sanchousf, 25 Января 2012

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

    +130

    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
    BOOL CMarkup::Search(CString OprName, CString strSQL, short nType)
    {
    
    ...
    	
    	sCommandLine = sPath.Left(nPos)+ _T("\\Getorder.exe search ")+OprName+_T(" ")+strSQL+_T(" ")+strType;
    	::wcscpy(cCommandLine, sCommandLine);
    
    	BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
    	if (ret) {
    		CloseHandle(pi.hThread );						//Close the thread handle as soon as it is no longer needed.
    		WaitForSingleObject(pi.hProcess, INFINITE);		//Suspend our execution until the child has terminated.
    		GetExitCodeProcess(pi.hProcess ,&dwExitCode);	//The child process terminated;get its exit code.
    		//if(dwExitCode == STILL_ACTIVE) TerminateProcess(pi.hProcess, 0);
    		CloseHandle(pi.hProcess);						//Close the process handle as soon as it is no longer needed.
    	}
    
    	CString ss,s;
    	ss = _T("s.txt");
    
    	CStdioFile in;
    	if(!in.Open (sPath+_T("\\")+ss,CFile::modeRead | CFile::typeBinary))
    		return TRUE;
    
    	while(in.ReadString(s))
    	{
    		s.TrimLeft();
    		s.TrimRight();
    		if(s != _T("**********")) continue;
    
    		ORDERTYPE m_OrderData;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.OprName = s;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.Language =s;
    
    		in.ReadString(s);
    		s.TrimLeft();
    		s.TrimRight();
    		m_OrderData.OrderNo =s;
    
    ...
    
    	}
    
    	in.Close();
    	DeleteFile(sPath+_T("\\")+ss);

    Прислали исходники приложения на C++ с MFC. Там просто один сплошной ГК от начала и до конца, но это место просто убило.

    Задача - найти заказ в базе данных MSSQL по SQL-запросу. Для этого они запускают отдельное приложение .NET, которое подключается к базе и дампит запись в текстовый файл, а приложение C++ из него читает.

    someone, 25 Января 2012

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