1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #12225

    +19

    1. 1
    2. 2
    3. 3
    4. 4
    Class1* c1 = (Class1*)malloc(sizeof(Class1)*N);
    Class2* c2 = (Class2*)malloc(sizeof(Class2)*N);
    for (long i = 0; i < N; i++) c1[i] = Class1();
    for (long i = 0; i < N; i++) c2[i] = Class2();

    Рассказать ему про new[] / delete[]?

    runewalsh, 29 Ноября 2012

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

    +19

    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
    //generate the new objects
        EnterCriticalSection(&csWinEvent);
        value arr = alloc_array(windowStates.size());
        int i=0;
        for(
            std::tr1::unordered_map<int,windowState>::const_iterator it = windowStates.begin();
            it!=windowStates.end();
            ++it )
        {
            value o = alloc_empty_object();
            //int hwnd
            //int x,y,w,h
            //int minimized,maximized,restored,closed
            alloc_field(o, val_id("hwnd"), alloc_int(it->first));
            alloc_field(o, val_id("window"), *(value*)GetWindowLongPtr((HWND)it->first,GWLP_USERDATA)  );
            alloc_field(o, val_id("x"), alloc_int(it->second.x));
            alloc_field(o, val_id("y"), alloc_int(it->second.y));
            alloc_field(o, val_id("w"), alloc_int(it->second.w));
            alloc_field(o, val_id("h"), alloc_int(it->second.h));
            alloc_field(o, val_id("minimized"), alloc_int(it->second.minimized));
            alloc_field(o, val_id("maximized"), alloc_int(it->second.maximized));
            alloc_field(o, val_id("restored"), alloc_int(it->second.restored));
            alloc_field(o, val_id("closed"), alloc_int(it->second.closed));
            val_array_set_i(arr,i,o);
            ++i;
        }
        windowStates.clear();
        LeaveCriticalSection(&csWinEvent);

    Casts ;]

    petersvp, 12 Ноября 2012

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

    +19

    1. 1
    Lennart lennart=new Lennart;

    Надпись жёлтым цветом на гпавном меню minecraft.

    dos_, 17 Сентября 2012

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

    +19

    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
    ??=include <iostream>
     
    template <typename T> class TSingleton: public T
    ??<
       public:
          static T& instance(void)
          ??<
             static T instance;
             return instance;
          ??>;
    ??>;
     
    class TOscillStatisticko
    ??<
       protected:
            TOscillStatisticko(void):_countNewInSmallPool(0), _countDeleteInSmallPool(0) ??<??>;
            
            friend class TSingleton <TOscillStatisticko>;
     
       private:
          int _countNewInSmallPool;
          int _countDeleteInSmallPool;
     
       public:
          void addCountNewInSmallPool(void)
          ??<
             _countNewInSmallPool++;
          ??>
     
          int countNewInSmallPool(void)
          ??<
             return _countNewInSmallPool;
          ??>
    ??>;
     
    typedef TSingleton <TOscillStatisticko> TOscillStatistic;
     
    int main() 
    ??<
        TOscillStatistic::instance().addCountNewInSmallPool();
        std::cout<<TOscillStatistic::instance().countNewInSmallPool()<<std::endl;
        std::cout<<"ko"<<std::endl;
    ??>

    http://ideone.com/dt9L9
    Ладно, раз уж я так палюсь, то придется признаться: у меня просто сломалась клавиатура, потому сегодня пришлось написать немного странно...
    Так вот вопрос:, почему, если закомментировать строку

    friend class TSingleton <TOscillStatisticko>;
    http://ideone.com/4WBGh

    HaskellGovno, 20 Августа 2012

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

    +19

    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
    void load_functions(void** functions[], const char* names[], ushort count)
    {
    	for(ushort i=0; i<count; i++)
    		*functions[i]=wglGetProcAddress(names[i]);
    }
    
    ...
    
    void* const glslFunctions[]={&glCreateShader, &glShaderSource, &glCompileShader,
    	&glGetShaderiv, &glGetShaderInfoLog, &glDeleteShader,
    	&glCreateProgram, &glAttachShader, &glLinkProgram, &glGetProgramiv,
    	&glGetProgramInfoLog, &glUseProgram, &glDeleteProgram,
    	&glGetUniformLocation, &glGetActiveUniform, &glBindAttribLocation,
    	&glGenProgramPipelines, &glBindProgramPipeline, &glDeleteProgramPipelines, &glUseProgramStages,
    	&glProgramParameteri, &glGetProgramPipelineiv, &glValidateProgramPipeline, &glGetProgramPipelineInfoLog,
    
    	&glProgramUniform1i, &glProgramUniform2iv, &glProgramUniform3iv, &glProgramUniform4iv,
    	&glProgramUniform1ui, &glProgramUniform2uiv, &glProgramUniform3uiv, &glProgramUniform4uiv,
    	&glProgramUniform1f, &glProgramUniform2fv, &glProgramUniform3fv, &glProgramUniform4fv,
    	&glProgramUniform1d, &glProgramUniform2dv, &glProgramUniform3dv, &glProgramUniform4dv,
    	&glProgramUniformMatrix2fv, &glProgramUniformMatrix3fv, &glProgramUniformMatrix4fv,
    	&glProgramUniformMatrix2x3fv, &glProgramUniformMatrix2x4fv,
    	&glProgramUniformMatrix3x2fv, &glProgramUniformMatrix3x4fv,
    	&glProgramUniformMatrix4x2fv, &glProgramUniformMatrix4x3fv,
    	&glProgramUniformMatrix2dv, &glProgramUniformMatrix3dv, &glProgramUniformMatrix4dv,
    	&glProgramUniformMatrix2x3dv, &glProgramUniformMatrix2x4dv,
    	&glProgramUniformMatrix3x2dv, &glProgramUniformMatrix3x4dv,
    	&glProgramUniformMatrix4x2dv, &glProgramUniformMatrix4x3dv};
    
    const char* glslFuncNames[sizeof(glslFunctions)/sizeof(glslFunctions[0])]=
    	{"glCreateShader", "glShaderSource", "glCompileShader",
    	"glGetShaderiv", "glGetShaderInfoLog", "glDeleteShader",
    	"glCreateProgram", "glAttachShader", "glLinkProgram", "glGetProgramiv",
    	"glGetProgramInfoLog", "glUseProgram", "glDeleteProgram",
    	"glGetUniformLocation", "glGetActiveUniform", "glBindAttribLocation",
    	"glGenProgramPipelines", "glBindProgramPipeline", "glDeleteProgramPipelines", "glUseProgramStages",
    	"glProgramParameteri", "glGetProgramPipelineiv", "glValidateProgramPipeline", "glGetProgramPipelineInfoLog",
    
    	"glProgramUniform1i", "glProgramUniform2iv", "glProgramUniform3iv", "glProgramUniform4iv",
    	"glProgramUniform1ui", "glProgramUniform2uiv", "glProgramUniform3uiv", "glProgramUniform4uiv",
    	"glProgramUniform1f", "glProgramUniform2fv", "glProgramUniform3fv", "glProgramUniform4fv",
    	"glProgramUniform1d", "glProgramUniform2dv", "glProgramUniform3dv", "glProgramUniform4dv",
    	"glProgramUniformMatrix2fv", "glProgramUniformMatrix3fv", "glProgramUniformMatrix4fv",
    	"glProgramUniformMatrix2x3fv", "glProgramUniformMatrix2x4fv",
    	"glProgramUniformMatrix3x2fv", "glProgramUniformMatrix3x4fv",
    	"glProgramUniformMatrix4x2fv", "glProgramUniformMatrix4x3fv",
    	"glProgramUniformMatrix2dv", "glProgramUniformMatrix3dv", "glProgramUniformMatrix4dv",
    	"glProgramUniformMatrix2x3dv", "glProgramUniformMatrix2x4dv",
    	"glProgramUniformMatrix3x2dv", "glProgramUniformMatrix3x4dv",
    	"glProgramUniformMatrix4x2dv", "glProgramUniformMatrix4x3dv"};
    
    load_functions((void***)glslFunctions, glslFuncNames, sizeof(glslFunctions)/sizeof(glslFunctions[0]));
    
    ...

    Вот так я загружаю расширения OpenGL!

    gammaker, 28 Июля 2012

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

    +19

    1. 1
    delete this;

    Это написал гейдевщик.
    Но когда его спросили: "Почему? Зачем?"
    Он ответил: "Я создаю принципиально новую охретектуру движка. Это будет лучший двиг всех времен и народов."

    HaskellGovno, 28 Июля 2012

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

    +19

    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
    // хелпер чтобы конвертить типы строк
    template <class S1, class S2>
    struct str_convert {
    	static S1 conv(S2 const & s2) { return str_convert<S2, S1>::conv(s2); }		// по умолчанию ищет специализацию для пары S2, S1
    	static S2 conv(S1 const & s1) { return str_convert<S2, S1>::conv(s1); }
    };
    
    // специализация, чтобы не конвертить одно в одно
    template <class S>
    struct str_convert<S, S> {
    	static S const & conv(S const & s) { return s; };
    };
    
    // специализация, чтобы конвертить std::string <-> std::wstring
    template <>
    struct str_convert<std::string, std::wstring> {
    	static std::string conv(std::wstring const & ws) { return boost::locale::conv::utf_to_utf<char>(ws); }
    	static std::wstring conv(std::string const & s)  { return boost::locale::conv::utf_to_utf<wchar_t>(s); }
    };
    
    // специализация QString <-> std::string
    // skipped
    
    template <class StringType = std::string>
    struct some 
    {
    	typedef StringType		string_type;
    	typedef std::string		utf8_string_type;
    
    	some(string_type const & s = string_type())
    		: inner_string_(s)
    	{}
    
    	template <class S>
    	some(S const & s)
    		: inner_string_(str_convert<S, string_type>::conv(s))
    	{}
    
    	string_type inner_string_;
    };
    
    int main()
    {
    	std::string s = "hello!";
    	some<> test0(s);		  // ok
    	some<> test2("hello!"); // ха-ха, вот еще, пытаться самостоятельно привести к std::string, пиши специализацию для массивов, сука!
    	return 0;
    }

    сегодня ради красоты передачи "literal" в конструктор писал говноспециализации для PodType[N]

    defecate-plusplus, 04 Июля 2012

    Комментарии (16)
  9. Куча / Говнокод #10157

    +19

    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
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    uiopqwertyasd, 01 Мая 2012

    Комментарии (8)
  10. Куча / Говнокод #10132

    +19

    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
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    У МЕНЯ БОЛЬШОЙ ХУЙ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    uiopqwertyasd, 01 Мая 2012

    Комментарии (8)
  11. PHP / Говнокод #442

    +19

    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
    // то что было
    
    /************************************
    return TRUE if version1 >= version2
    version1 = "XX.XX.XX"
    version2 = "XX.XX.XX"
    ************************************/
    function CheckVersion($version1, $version2)
    {
    	$arr1 = explode(".",$version1);
    	$arr2 = explode(".",$version2);
    	if (intval($arr2[0])>intval($arr1[0])) return false;
    	elseif (intval($arr2[0])<intval($arr1[0])) return true;
    	else
    	{
    		if (intval($arr2[1])>intval($arr1[1])) return false;
    		elseif (intval($arr2[1])<intval($arr1[1])) return true;
    		else
    		{
    			if (intval($arr2[2])>intval($arr1[2])) return false;
    			elseif (intval($arr2[2])<intval($arr1[2])) return true;
    			else return true;
    		}
    	}
    }
    
    // а я бы сделал вот так
    // причем при добавлении новой подверсии работоспособность не изменится
    
    function CheckVersion($version1, $version2)
    {
    	return (intval(str_replace('.','',$version1))>=intval(str_replace('.','',$version2))) ? true : false;
    }

    Просто шикарное решение от умов битрикса

    guest, 23 Января 2009

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