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

    +173

    1. 1
    2. 2
    3. 3
    4. 4
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
        lb = true;
    else
        lb = false;

    Уроки какого-то умника по OpenGL. И вот такие "творения" на каждом шагу.

    psina-from-ua, 27 Декабря 2010

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

    +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
    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
    // If iMode!=0, non-blocking mode is enabled.
    	u_long iMode=1;
    	ioctlsocket(Socket,FIONBIO,&iMode);
    	
    	// Main loop
    	for(;;)
    	{
    		// Display message from server
    		char buffer[1000];
    		memset(buffer,0,999);
    		int inDataLength=recv(Socket,buffer,1000,0);
    		std::cout<<buffer;
    		
    		int nError=WSAGetLastError();
    		if(nError!=WSAEWOULDBLOCK&&nError!=0)
    		{
    			std::cout<<"Winsock error code: "<<nError<<"\r\n";
    			std::cout<<"Server disconnected!\r\n";
    			// Shutdown our socket
    			shutdown(Socket,SD_SEND);
    
    			// Close our socket entirely
    			closesocket(Socket);
    
    			break;
    		}
    		Sleep(1000);
    	}

    http://www.win32developer.com/tutorial/winsock/winsock_tutorial_3.shtm
    Вот как нада работать с сокетами... (строка 27).

    fddpro, 26 Декабря 2010

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

    +171

    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
    if (a == 0 && b == 0 && c == 0 && d == 0) n = 0;
        if (a == 0 && b == 0 && c == 0 && d != 0) n = 0;
        if (a == 0 && b == 0 && c != 0 && d == 0) n = 0;
        if (a == 0 && b != 0 && c == 0 && d == 0) n = 0;
        if (a != 0 && b == 0 && c == 0 && d == 0) n = 0;
        if (a == 0 && b == 0 && c != 0 && d != 0 && c == d) m += 1;
        if (a == 0 && b != 0 && c != 0 && d == 0 && b == c) m += 1;
        if (a == 0 && b != 0 && c == 0 && d != 0 && b == d) m += 1;
        if (a != 0 && b == 0 && c == 0 && d != 0 && a == d) m += 1;
        if (a != 0 && b == 0 && c != 0 && d != 0 && a == c) m += 1;
        if (a != 0 && b != 0 && c == 0 && d == 0 && a == b) m += 1;////
        if (a == 0 && b != 0 && c != 0 && d != 0 && b == c) m += 1;
        if (a == 0 && b != 0 && c != 0 && d != 0 && b == d) m += 1;
        if (a == 0 && b != 0 && c != 0 && d != 0 && c == d) m += 1;//
        if (a != 0 && b == 0 && c != 0 && d != 0 && a == c) m += 1;
        if (a != 0 && b == 0 && c != 0 && d != 0 && a == d) m += 1;
        if (a != 0 && b == 0 && c != 0 && d != 0 && d == c) m += 1;//
        if (a != 0 && b != 0 && c == 0 && d != 0 && a == b) m += 1;
        if (a != 0 && b != 0 && c == 0 && d != 0 && a == d) m += 1;
        if (a != 0 && b != 0 && c == 0 && d != 0 && b == d) m += 1;//
        if (a != 0 && b != 0 && c != 0 && d == 0 && a == b) m += 1;
        if (a != 0 && b != 0 && c != 0 && d == 0 && a == c) m += 1;
        if (a != 0 && b != 0 && c != 0 && d == 0 && c == b) m += 1;////
        m--;
        if (a != 0 && b != 0 && c != 0 && d != 0 && a == b) k += 1;
        if (a != 0 && b != 0 && c != 0 && d != 0 && a == c) k += 1;
        if (a != 0 && b != 0 && c != 0 && d != 0 && a == d) k += 1;
        if (a != 0 && b != 0 && c != 0 && d != 0 && b == c) k += 1;
        if (a != 0 && b != 0 && c != 0 && d != 0 && b == d) k += 1;
        if (a != 0 && b != 0 && c != 0 && d != 0 && c == d) k += 1;
        k -= 3;
        if (m <= 0) m = 0;
        if (k <= 0) k = 0;
        n = k + m;*/

    Как на второй день после начала изучения С стал решать задачу "Сколько чисел повторяются"

    slushkov, 24 Декабря 2010

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

    +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
    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
    AClass::AClass()
    {
            char c;
    	pipe( m_ThreadPipeA );
    	pipe( m_ThreadPipeB );
            write( m_ThreadPipeA[0], &c, sizeof(c) );
    }
    
    void AClass::JobCreatorThread()
    {
    	char c;
    	do {
    		/* prepare new job and pass it to the thread pool */
    		read( m_ThreadPipeA[1], &c, sizeof(c) );
    		m_CurrJob = IncomingJob;
    		write( m_ThreadPipeB[0], &c, sizeof(c) );
    	} while (!m_Shutdown);
    }
    
    void AClass::ThreadPoolMethod()
    {
    	char c;
    	do {
    		Job j;
    		read( m_ThreadPipeB[1], &c, sizeof(c) );
    		j = m_CurrJob;
    		write( m_ThreadPipeA[0], &c, sizeof(c) );
    		/* handle the job j */
    	} while (!m_Shutdown);
    }

    из архивов.

    дала как-то архетиктура задание модуль распаралелить потоками - но при этом как можно меньше использовать локи, что бы проблем вертикального скалирования не возникало. и три месяца спустся они родили -о чудо!- многопоточный модуль ВООБЩЕ без локов. тока с производительностью проблемы - но это не могут быть локи потому что модуль ими ВООБЩЕ не пользуется - почему мне и дали задание посмотреть что там можно еще усовершенствовать.

    мне несколько часов понадобилось что бы мой примитивный мозг смог осознать величие полета мысли моих коллег. а потом (когда я наконец из моря кода выцедил приведенную сверху эссенцию) у меня волосы дыбом встали....

    лопата: чудаки пайпами симулировали мутексы/ивенты. и ведь не придерешься: архитекторы сказали локи избегать, а про пайпы ничего сказано не было.

    ЗЫ ну и то что в джоб объекте еще и строковых массивов на 80К, и они постоянно копировались туды сюды, это было cherry topping ко всему этому счастью.

    Dummy00001, 23 Декабря 2010

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

    +145

    1. 1
    for(rptr=0;rptr<10;rptr++) // пока очередь не опустела

    выборка элементов из FIFO =D

    resettik, 22 Декабря 2010

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

    +167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    T toPower(T base, int exponent)
    {
    	//cout << "++++++++Start template+++++++++++++" << endl;
    	T result = base;
    	if(exponent == 0) return (T)1;
    	if(exponent < 0) return (T)0;
    
    	while(--exponent)
    		result *= base;
    	//cout << "++++++++Finish template++++++++++++" << endl;
    	return result;
    }

    1_and_0, 22 Декабря 2010

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

    +181

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int maxOf5(int a, int b, int c, int d, int e) {
            int arr[5];
            arr[0] = a;
            arr[1] = b;
            arr[2] = c;
            arr[3] = d;
            arr[4] = e;
            bubbleSort(&arr, 5);
            return arr[0];
    }

    no comments...

    wh_, 22 Декабря 2010

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

    +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
    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
    #define LOKI_TYPELIST_4(T1, T2, T3, T4) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_3(T2, T3, T4) >
    #define LOKI_TYPELIST_5(T1, T2, T3, T4, T5) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_4(T2, T3, T4, T5) >
    ...
    ...
    #define LOKI_TYPELIST_49(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_48(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49) >
    #define LOKI_TYPELIST_50(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_49(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) >

    Говногость, 21 Декабря 2010

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

    +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
    template <class TList, template <class> class Unit>
        class GenScatterHierarchy;
     template <class T1, class T2, template <class> class Unit>
        class GenScatterHierarchy<Typelist<T1, T2>, Unit>
            : public GenScatterHierarchy<Private::ScatterHierarchyTag<T1, T2>, Unit>
            , public GenScatterHierarchy<T2, Unit>
        {
        public:
            typedef Typelist<T1, T2> TList;
            typedef GenScatterHierarchy<Private::ScatterHierarchyTag<T1, T2>, Unit> LeftBase;
            typedef GenScatterHierarchy<T2, Unit> RightBase;
            template <typename T> struct Rebind
            {
                typedef Unit<T> Result;
            };
        };

    Говногость, 21 Декабря 2010

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

    +173

    1. 1
    #define arrVec[2].realVectorInfo.Count 5

    Мало того, что встретил это в проекте, доставшемся от "предков", так ведь и MSVS 6.0 проглатывает.
    Выражение arrVec[2].realVectorInfo.Count успешно заменялось на 5.
    Заметил подставу после появления строки arrVec[i].realVectorInfo.Count в проекте, в результате рефакторинга.

    Говногость, 20 Декабря 2010

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