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

    +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
    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
    // TEMPLATE FUNCTION rotate
    template<class _FI> inline
    	void rotate(_FI _F, _FI _M, _FI _L)
    	{if (_F != _M && _M != _L)
    		_Rotate(_F, _M, _L, _Iter_cat(_F)); }
    template<class _FI> inline
    	void _Rotate(_FI _F, _FI _M, _FI _L,
    		forward_iterator_tag)
    	{for (_FI _X = _M; ; )
    		{iter_swap(_F, _X);
    		if (++_F == _M)
    			if (++_X == _L)
    				break;
    			else
    				_M = _X;
    		else if (++_X == _L)
    			_X = _M; }}
    template<class _BI> inline
    	void _Rotate(_BI _F, _BI _M, _BI _L,
    		bidirectional_iterator_tag)
    	{reverse(_F, _M);
    	reverse(_M, _L);
    	reverse(_F, _L); }
    template<class _RI> inline
    	void _Rotate(_RI _F, _RI _M, _RI _L,
    			random_access_iterator_tag)
    	{_Rotate(_F, _M, _L, _Dist_type(_F), _Val_type(_F)); }
    template<class _RI, class _Pd, class _Ty> inline
    	void _Rotate(_RI _F, _RI _M, _RI _L, _Pd *, _Ty *)
    	{_Pd _D = _M - _F;
    	_Pd _N = _L - _F;
    	for (_Pd _I = _D; _I != 0; )
    		{_Pd _J = _N % _I;
    		_N = _I, _I = _J; }
    	if (_N < _L - _F)
    		for (; 0 < _N; --_N)
    			{_RI _X = _F + _N;
    			_RI _Y = _X;
    			_Ty _V = *_X;
    			_RI _Z = _Y + _D == _L ? _F : _Y + _D;
    			while (_Z != _X)
    				{*_Y = *_Z;
    				_Y = _Z;
    				_Z = _D < _L - _Z ? _Z + _D
    					: _F + (_D - (_L - _Z)); }
    			*_Y = _V; }}

    Header из Microshit Visual C++ 6.0.

    Запостил: Говногость, 02 Февраля 2011

    Комментарии (23) RSS

    • Это написал человек-аутист-кодогенератор?
      Ответить
    • Офускрация?
      Ответить
    • Автора, смутили имена переменных в стандартном заголовке, не предназначенном для восприятия человеком?
      Ответить
      • > Автора, смутили имена переменных в стандартном заголовке, не предназначенном для восприятия человеком?
        > Автора, смутили имена переменных
        > ,
        Ответить
      • >не предназначенном для восприятия человеком?
        Ну ну. Когда в шаблонах вылезет ошибка и Вы будете думать почему, то поймете, что предназначен для восприятия человеком.

        Да и вообще, хедеры такая штука, что если до включения хедера что-то не так определить, то ошибка вылезет опять же в хедере и в нем придётся разбираться.

        Или Вы приспешник майкрософта, написавший этот код?
        Ответить
        • Мне не понятно, где в примере говнокод, соответсвенно, не до конца ясен предмет спора.
          Ответить
    • думаю, выражу всеобщее мнение:
      нихуя не понятно )))))
      Ответить
    • Кручу, верчу, запутать хочу!
      Ответить

    Добавить комментарий