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

    +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
    int key;
    float ar1[3];
    int ar2[3];
    int cnt = 0;
    if (P[min][0] > 0) {ar1[cnt] = P[0][0]/P[min][0]; ar2[cnt++] = 0;}
    if (P[min][1] > 0) {ar1[cnt] = P[0][1]/P[min][1]; ar2[cnt++] = 1;}
    if (P[min][2] > 0) {ar1[cnt] = P[0][2]/P[min][2]; ar2[cnt++] = 2;}
    if (cnt == 1)
        key = ar2[0];
    else if (cnt == 2)
        key = (ar1[0] < ar1[1] ? ar2[0] : ar2[1]);
    else
        key = (ar1[0] < ar1[1] ? (ar1[0] < ar1[2] ? ar2[0] : ar2[2]) : (ar1[1] < ar1[2] ? ar2[1] : ar2[2]));

    Нужно было определить номер наименьшего положительного числа из трех.

    Kona-chan, 11 Мая 2011

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

    +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
    class CVal
    {
    private:
        int m_val;
    public:
        __declspec(property(get=get_Val, put=put_Val)) int Val;
        int get_Val()
        {
            return m_val;
        }
        void put_Val(int val)
        {
            m_val = val;
        }
    };

    Говно в рамках стандарта C++.

    Говногость, 10 Мая 2011

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

    +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
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    struct LexicalToken
            {
            public:
                LexicalToken(DataStructs::Lexem &lex,
                             SyntaxTree::SyntaxNode::Type type,
                             const IOSystem::Position &pos = IOSystem::Position()) :
                    lexem(lex), position(pos), type(type)
                {}
    
                LexicalToken(const LexicalToken &other) :
                    lexem(other.lexem), position(other.position), type(other.type)
                {}
    
                LexicalToken& operator = (const LexicalToken &other)
                {
                    memcpy(this, &other, sizeof(LexicalToken));
                    return *this;
                }
    
                DataStructs::Lexem &lexem;
                IOSystem::Position position;
                SyntaxTree::SyntaxNode::Type type;
            };

    Use pointers, Luke

    Elvenfighter, 09 Мая 2011

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

    +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
    #include <stdio.h>
    #include <boost/typeof/typeof.hpp>
    
    template<class T>
    struct __macro
    {
    	__declspec(thread) static T _;
    };
    
    template<class T>
    T __macro<T>::_;
    
    #define def(c) (__macro<typeof(c)>::_ = c)
    #define acc(c) (__macro<typeof(c)>::_)
    
    #define is_digit(x) (def(x),(acc(x) >= '0' && acc(x) <= '9') ? true : false)
    #define is_bugit(x) ((x >= '0' && x <= '9') ? true : false)
    
    int main()
    {
    	char hj;
    	
    	hj = '9';
    	printf("test->") && is_bugit(hj++) && printf("ok\n") || puts("no");
    
    	hj = '9';
    	printf("test->") && is_digit(hj++) && printf("ok\n") || puts("no");
    }

    e113c08d6cf14afb, 07 Мая 2011

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

    +147

    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
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    /*Windows 8 source code.*/
    /*
    TOP SECRET Microsoft(c) Code
    Project: Cairo(tm)
    Projected release-date: Summer 2012
    */
    
    #include "winnt.h"
    #include "evenmore.h"
    #include "oldstuff.h"
    #include "billrulz.h"
    #define INSTALL_HARD_C
    #define INSTALL_DIR_WINDOWS
    
    char make_prog_look_big[160000000] ;
    
    void main()
    {
        while(!CRASHED)
        {
             display_copyright_message();
             display_bill_rules_message();
             do_nothing_loop();
    
             if (first_time_installation)
             {
                 make_4gb_megabyte_swapfile();
                 do_nothing_loop();
                 display_funny_3d();
                 hang_system();
             }
     
             write_something(anything);
             display_copyright_message();
             do_nothing_loop();
             do_some_stuff();
             if (still_not_crashed)
             {
                 display_copyright_message();
                 do_nothing_loop();
                 basically_run_windows_vista();
                 show3d_in_loop();
                 do_nothing_loop();
                 do_nothing_loop();
             }
         }
     
         if (detect_cache())
             disable_cache();
     
         if (fast_cpu())
         {
             set_wait_states(lots);
             set_mouse(speed, very_slow);
             set_mouse(action, jumpy);
             set_mouse(reaction, sometimes);
         }
        
         if (fast_gpu())
         {
             setitonfire(dx12);
         }
    
         if (lotofmemory()) 
         {  
            //achtung: red alert!
            /* allocateforfutureuse(200mb); */
             allocateforfutureuse(2gb);
    
         }
     
         /* printf("Welcome to Windows Vista"); */
         /* printf("Welcome to Windows 7"); */
         printf("Welcome to Windows 8");
     
         if (system_ok())
             crashex(aero3denalbed());
         else;
         /*    system_memory = open("a:\swp0001.swp", O_CREATE); */
    
     
         while(something)
         {
             allocate_random_memory();
             sleep(5);
             get_user_input();
             sleep(5);
             display_uac_prompt();
             act_on_user_input();
             sleep(5);
         }
         draw_3d_bsod();
         die();
    }

    wwwww, 03 Мая 2011

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

    +168

    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
    typedef union Variant
        {
        public:
            Variant() {}
    
            Variant(signed int val) :
                v_int(val)
            {}
            operator signed int &() { return const_cast<signed int&>(this->operator const signed int &()); }
            operator const signed int&() const { return v_int; }
    
            Variant(unsigned int val) :
                v_uint(val)
            {}
            operator unsigned int &() { return const_cast<unsigned int&>(this->operator const unsigned int &()); }
            operator const unsigned int &() const { return v_uint; }
    
            Variant(char val) :
                v_char(val)
            {}
            operator char &() { return const_cast<char&>(this->operator const char &()); }
            operator const char&() const { return v_char; }
    
            Variant(double val) :
                v_float(val)
            {}
            operator double &() { return const_cast<double&>(this->operator const double &()); }
            operator const double &() const { return v_float; }
    
            Variant(void *val) :
                v_ptr(val)
            {}
            operator void*& () { return const_cast<void*&>(this->operator void *&()); }
            operator const void* const& () const { return v_ptr; }
    
            static size_t getValueSize(const Type::OfType &type)
            {
                size_t result = 0;
                switch ( type )
                {
                case Type::Pointer:
                case Type::CharPtr:
                case Type::IntPtr:
                case Type::UIntPtr:
                case Type::RealPtr:
                case Type::String:
                    result = sizeof(v_ptr);
                    break;
                case Type::Char:
                    result = sizeof(v_char);
                    break;
                case Type::Int:
                    result = sizeof(v_int);
                    break;
                case Type::UInt:
                    result = sizeof(v_uint);
                    break;
                case Type::Real:
                    result = sizeof(v_float);
                    break;
                case Type::Void:
                    result = 0;
                    break;
                }
                return result;
            }
    
        private:
            void* v_ptr;
            char v_char;
            unsigned int v_uint;
            signed int v_int;
            double v_float;
        } Variant;

    Небольшая имплементация безтиповости ;-[

    Elvenfighter, 02 Мая 2011

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

    +147

    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
    void tolowerStr(char *Str)
    {
         #include <windows.h>
         #include <ctype.h>
    
         SetConsoleCP(1251);
         SetConsoleOutputCP(1251);
         setlocale(LC_CTYPE,"Russian");
         
         int len = strlen(Str);
         for(int c=0; c<len; c++)
           Str[c] = tolower(Str[c]);
    }

    инклайд в теле ф-и :D

    Antichat, 02 Мая 2011

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

    +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
    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
    #define цой_жив(...) , ## __VA_ARGS__
    
    #define COUNT_PARMS2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _, ...) _
    #define REPEAT_PARAMS(...) (__VA_ARGS__)
    #define COUNT_PARMS(...) \
       COUNT_PARMS2 REPEAT_PARAMS(цой_жив(__VA_ARGS__) 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
    
    template<class>
    struct call_type;
    
    #define NUM_ARGS 13
    
    #define C_CALL_REPEAT(z,n,data) \
    	template<class R BOOST_PP_ENUM_TRAILING_PARAMS(n,class A)> \
    	struct call_type<R __cdecl(BOOST_PP_ENUM_PARAMS(n,A))> \
    	{ \
    	enum{j}; \
    	};
    
    BOOST_PP_REPEAT(BOOST_PP_INC(NUM_ARGS),C_CALL_REPEAT,~);
    
    #define STD_CALL_REPEAT(z,n,data) \
    	template<class R BOOST_PP_ENUM_TRAILING_PARAMS(n,class A)> \
    	struct call_type<R __stdcall(BOOST_PP_ENUM_PARAMS(n,A))> \
    	{ \
    	enum{j=1}; \
    	}; 
    
    BOOST_PP_REPEAT(BOOST_PP_INC(NUM_ARGS),STD_CALL_REPEAT,~);
    
    #define VAR_CALL_REPEAT(z,n,data) \
    	template<class R BOOST_PP_ENUM_TRAILING_PARAMS(n,class A)> \
    	struct call_type<R __cdecl(BOOST_PP_ENUM_PARAMS(n,A) BOOST_PP_COMMA_IF(n) ...)> \
    	{ \
    	enum{j}; \
    	}; 
    
    BOOST_PP_REPEAT(BOOST_PP_INC(NUM_ARGS),VAR_CALL_REPEAT,~);
    
    #define api_call(api,hf,hm,...) \
    	((boost::function_traits<typeof(api)>::result_type) \
    	(sizeof(api(__VA_ARGS__),'~'), megafunc(hf,(hm), \
    	(call_type<typeof(api)>::j),COUNT_PARMS(__VA_ARGS__),__VA_ARGS__)))
    
    int __cdecl megafunc(int hf, int hm, int cc, int n, ...)
    {
    	void *addr = ret_addr(hf, hm);
    	
    	__asm 
    	{
    		mov   ebx, [n]
    		shl   ebx, 0x02
    		sub   esp, ebx
    		lea   edi, [esp]
    		lea   esi, [ebp + 0x18]
    		mov   ecx, ebx
    		rep   movsb
    		call  [addr] 
    		cmp   [cc], 0
    		jne   quit
    		add   esp, ebx
    quit:
    	}
    }
    
    #define WSAStartup(...) api_call(WSAStartup,0xcdde757d,0xd6bc4bcc,__VA_ARGS__)
    #define sprintf(...) api_call(sprintf,0x2d3a75e1,0xb634b9cd,__VA_ARGS__)
    ...

    4c7497f8e9d9462d, 01 Мая 2011

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

    +166

    1. 1
    enum mysymbols={true,flase}

    С товарищем в аудитории на доске писали разные говнокоды, кто какие вспомнит. Заходит препод, оглянул взглядом доску, улыбнулся, и начал писать свою версию (см. выше), приговаривая: "Вот веселуха то начнется!" =)

    1_and_0, 29 Апреля 2011

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

    +166

    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
    class r{
    	r(const r&);
    	r& operator=(const r&);
    public:
    	r(){}
    	template<class t>
    	r& operator,(t *v){
    		return this->operator<<(*v);
    	}
    	template<class t>
    	r& operator<<(t &o){
    		crash_if_fail(dynamic_cast<const void*>(&o));
    		int l = 0;
    		int n = 0, n_ = sizeof(o) / sizeof(void*);
    		while (n < n_){
    			void **a = *((void***)&o + n++);
    			if (IsBadReadPtr(a, sizeof(void*)) || is_stack(a)){
    				continue;
    			}
    			int c = 0;
    			void *d = a[c];
    			while (is_code_segment__(d)){
    				print_info(&l, o, n, d, c, a);
    				d = a[++c];
    			}
    		}
    		return *this;
    	}
    	template<class t>
    	void print_info(int *l, const t &o, int n, void *d, int c, void **a){
    		if (!*l){
    			puts("///////////////////////////////////////////////////");
    			printf("object address %p\n", &o);
    			*l = 1;
    		}
    		if (!c){
    			puts("-=-=-=-=-=-=-=-=-=-");
    			printf("%15.1s%p:__vfptr %p\n", "+", ((char*)((void***)&o + n - 1)) - (char*)&o, a);
    		}
    		printf("%32.p\n", d);
    	}
    };

    34930fb4455e40f4, 28 Апреля 2011

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