1. Список говнокодов пользователя suc-daniil

    Всего: 6

  2. C++ / Говнокод #12442

    +14

    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
    /*!
     * \brief Checks for a file existence
     */
    inline bool IsFolderExist( const boost::filesystem::path &path )
    {
        return boost::filesystem::exists( path ) && boost::filesystem::is_directory( path );
    }
    
    
    /*!
     * \brief Checks for a folder existence
     */
    inline bool IsFileExist( const boost::filesystem::path &path )
    {
        return boost::filesystem::exists( path ) && boost::filesystem::is_regular_file( path );
    }

    Нашёл у себя в проекте. Кручу верчу - обмануть хочу). Про то, что даже правильные комментарии тут нафиг не нужны - я уже молчу.

    suc-daniil, 17 Января 2013

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

    +18

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    using namespace boost;
    typedef filesystem::recursive_directory_iterator dir_iter_t;
    dir_iter_t itt(filesystem::current_path());
    while ([&](dir_iter_t &itter) -> decltype(itter)
    {
        std::cout << boost::filesystem::path((*itter++).path()).make_preferred().string() << std::endl;
        return itter;
    }(itt) != dir_iter_t());

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

    suc-daniil, 15 Ноября 2012

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

    +31

    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
    #include <iostream>
    #include <tr1/functional>
    
    using namespace std::tr1::placeholders;
    
    struct I
    {
      int i;
    };
    
    struct S
    {
      int i;
      I ii;
    };
    
    int main()
    {
      std::tr1::function<I& (S&)> pi = std::tr1::bind(&S::ii, _1);
      std::tr1::function<std::tr1::reference_wrapper<I> (S&)> pri = std::tr1::bind(static_cast<std::tr1::reference_wrapper<I> (*)(I&)>(&std::tr1::ref<I>), std::tr1::bind(pi, _1));
      std::tr1::function<int& (S&)> psi = std::tr1::bind(&I::i, std::tr1::bind(&std::tr1::reference_wrapper<I>::get, std::tr1::bind(pri, _1)));
      S s = {1, {2}};
      std::cout << psi(s) << std::endl;
      psi(s) = 3;
      std::cout << psi(s) << std::endl;
      return 0;
    }

    Нашёл на RSDN, в теме о том, как получить указатель на член члена.

    suc-daniil, 28 Августа 2012

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

    +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
    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
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    main()
       {
       j=atol("776677"); c=0;
      gb=65500;  /*гран буф не>65500!*/
      gp=gb+65500;
       c=PA();
       vm = v_mod(0x0f00)&0x00ff;
       if((vm!=2) && (vm!=3) && (vm!=7))   v_mod(3);
       if(vm==7) v_m=MK_FP(0xB000,0); /* присвоить адр в-памяти */
       else   v_m=MK_FP(0xB800,0);
       if(c==0) {printf("Самопроверка программы неудачна."); dely(9);}
       gek=calloc(1000,sizeof(int));
       bufa=farcalloc(4000,sizeof(long));
       bfk=calloc(4000,sizeof(int));
       ok=calloc(800,sizeof(char));
       st=calloc(10,sizeof(char));
       bufv=calloc(4000,sizeof(char));
     if((gek==NULL)||(bufa==NULL)||(bfk==NULL)||(ok==NULL)||(st==NULL)||(bufv==NULL))
    	  {
      printf(" Неудачное выделение памяти для основных буферов.\n");
      printf(" Программа не выполняется.");
    	 dely(9); exit(1);   }
       for(x=0;x<4000;x++) {bufa[x]=0L;bfk[x]=0; /*занул буф адресов и кодов */
       if(x<10) st[x]=0x00; /*буф для выв чисел на экр*/
       if(x<26) urov[x]=1;
       if(x<20) {abn[x]=1; aba[x]=2L;}} /*мин адресa абс ном строк и нач загр буф*/
       if(x<128) B0[x]=0;
       ur=vv=avt=in=0; i=N=0; zap=0;x_=1;
       ifm=10;/*10,01,11,12,21 - 1:п/панель записей,0-инф п/панель,12,21-2 базы*/
     /*  vctp(3);*/
       mou(0);   kur(0);
      okn=0; /*сбр инд сохр-х окон*/
      v_mod(0);
       nok1=16;
      SET();   ch=pal[0];
      textbackground(BLACK);
       clrscr();
      okno(0,2,ch,ch);
      window(1,1,80,25);
      okno(16,2,ch,ch);
      nstr(1);
      baz=1;
      nfl="0.cry ";
      F_place("10.cry");
      kzo();
      prx=3; /*нейтраль*/
      for(vm=4000;vm<8000;vm++) v_m[vm]=0; vm=0;
      /*vm-далее кол-во стр загр буф*/
      ppan(0,0);
      form_kod(2);/*чт genko*/
       attr=pal[5];  vdl(a+1,y_,a+36,y_,0,0);    /*сох атр  бывш стр*/
       vctp(0);
      tit();
      if(zap!=0) nstr(2);
      ZA[0]='\0';
      za=strlen(MPR);
      strcat(ZA,MPR);if(za>3) strcat(ZA,"\\");  strcat(ZA,"save.com");
      za=0; if((access(ZA,0)!=-1))  za=1; /*ZA-путь savera*/
      /**************/
      for(;;)
          {
          mou(1);
           ch=get_char(1);
    	if((ch<48)||(ch>57))  /*кроме цифр*/
    	 if((ch!=0xfe)&&(ch>0x20)&&(f_kl==0)) {printf("\7"); ch=0;}
    	mou(2); mus(a); /*ориен мыши*/
    	if((ch==TAB)||(ch==RIGHT)||(ch==LEFT))
    	  tab();/*порядок не менять*/
    	if(ch==15) { ctrl(); tab();}
    	mus(a); mus(101);
    	if(ch==F7)   gl_poisk(0);
    	if(ch==AF7)  gl_poisk(1);
    	if(ch==F1) hlp();
    	if(ch==CTRL) ctrl();
    	if((ch==AF1)&&(Pp==1)) ctrl();
    	if((ch==AF2)&&(Pp==0)) ctrl();
    	if(ch==32) exr(0);
    	if(ch==AF3) exb();
    	if(ch==AF4) exr(1);
    	if(ch==UP)   { cm=0; up(1);}
    	if(ch==DOWN) { cm=0; down(1); }
    	if(ch==PGUP) { cm=0;scroll(0,0);}
    	if(ch==PGDN) { cm=0;scroll(1,0);}
    	if(ch==HOME) { cm=0;scroll(0,4000);}
    	if(ch==END)  { cm=0;scroll(1,4000);}
    	if(ch==F5)   kon(1);
    	if(zap==0) /*ес зп разреш*/
    	{
    	if(ch==INS)  { s=0;
        if((chkm(3)!=0)||(chkm(4)!=0)) {s=1;
     coo(0,0x4E,0xCF,"","Предельная длина файла!",
     "Разрешено только удаление!",""," Выход");}
        if((chkm(1)!=0)||(chkm(2)!=0)) {s=1;
     coo(0,0x4E,0xCF,"","Исчерпана длина буфера!",
     "Сохраните набранную информацию,","после чего можно продолжить.",
     " Выход");}
    	 if(vm==4000)
    {coo(0,0x7f,0x70,"Количество записей в списке достигло 4000.",
    "","В данном случае возможно только удаление",

    Это один знакомый слесарь ЭВМ писал прогу для создания/редактирования/просмотра самопальной древовидной БД, для своих нужд, с тем условием, что работать она должна была чуть ли не на i286, и грузилась не более 2х секунд. Недавно он обратился ко мне с просьбой перенести её под линь, но увидев это я решил что такое жить не должно, поэтому просто писал аналог с нуля, на плюсах, но справедливости ради, замечу что моя прога вышла чуть тормознее:).
    Полный код к сожалению не влез, вот он: http://ideone.com/3sLsa.
    P.S. Авторское форматирование сохранено.

    suc-daniil, 23 Августа 2012

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

    +2

    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
    auto addition = [] (double a, double b) { return a + b; };
    
    auto substruction = [] (double a, double b) { return a - b; };
    
    auto divide = [] (double a, double b) { return a / b; };
    
    auto multiplie = [] (double a, double b) { return a * b; };
    
    typedef std::function<double (double, double)> DoubleFunc;
    
    int main()
    {
        std::vector<DoubleFunc> funcVector;
    
        funcVector.push_back(addition);
        funcVector.push_back(substruction);
        funcVector.push_back(multiplie);
        funcVector.push_back(divide);
    
        std::for_each(funcVector.begin(), funcVector.end(), []
        (DoubleFunc func)
        {
            std::cout << func(3.14159, 100500) << std::endl;
        });
    
        system("pause");
        return 0;
    }

    А ваш язык такое сможет:)? (я о delphi, java, etc.)
    Кстати, если писать все в таком духе, то параллелиться прога будет безболезненно:), правда это уже какой-то хацкель/лисп...

    suc-daniil, 30 Июля 2012

    Комментарии (134)
  7. Pascal / Говнокод #8199

    +106

    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
    procedure Tform1.mix;
    begin
     randomize;
     a[1]:=random(16)+1;
     btn[1].Caption:=inttostr(a[1]);
    begin
    repeat
     a[2]:=random(16)+1
    until
     a[2]<>a[1];
     btn[2].Caption:=inttostr(a[2]);
    begin
    repeat
     a[3]:=random(16)+1
    until
     (a[3]<>a[2]) and (a[3]<>a[1]);
     btn[3].Caption:=inttostr(a[3]);
    begin
    repeat
     a[4]:=random(16)+1
    until
     (a[4]<>a[2]) and (a[4]<>a[1]) and (a[4]<>a[3]);
     btn[4].Caption:=inttostr(a[4]);
    begin
    repeat
     a[5]:=random(16)+1
    until
     (a[5]<>a[2]) and (a[5]<>a[1]) and (a[5]<>a[3]) and (a[5]<>a[4]);
     btn[5].Caption:=inttostr(a[5]);
    begin
    repeat
     a[6]:=random(16)+1
    until
     (a[6]<>a[1]) and (a[6]<>a[2]) and (a[6]<>a[3]) and (a[6]<>a[4])
     and (a[6]<>a[5]);
     btn[6].Caption:=inttostr(a[6]);
    begin
    repeat
     a[7]:=random(16)+1
    until
     (a[7]<>a[1]) and (a[7]<>a[2]) and (a[7]<>a[3]) and
     (a[7]<>a[4]) and (a[7]<>a[5]) and (a[7]<>a[6]);
     btn[7].Caption:=inttostr(a[7]);
    begin
    repeat
     a[8]:=random(16)+1
    until
     (a[8]<>a[1]) and (a[8]<>a[2]) and (a[8]<>a[3]) and
     (a[8]<>a[4]) and (a[8]<>a[5]) and (a[8]<>a[6]) and (a[8]<>a[7]);
     btn[8].Caption:=inttostr(a[8]);
    begin
    repeat
     a[9]:=random(16)+1
    until
     (a[9]<>a[1]) and (a[9]<>a[2]) and (a[9]<>a[3]) and (a[9]<>a[4]) and
     (a[9]<>a[5]) and (a[9]<>a[6]) and (a[9]<>a[7]) and (a[9]<>a[8]);
     btn[9].Caption:=inttostr(a[9]);
    ...
    ...
    ...
    begin
    repeat
     a[14]:=random(16)+1
    until
     (a[14]<>a[1]) and (a[14]<>a[2]) and (a[14]<>a[3])
     and (a[14]<>a[4]) and (a[14]<>a[6]) and
     (a[14]<>a[7]) and (a[14]<>a[5]) and (a[14]<>a[9])
     and (a[14]<>a[8]) and (a[14]<>a[10]) and
     (a[14]<>a[11]) and (a[14]<>a[12]) and (a[14]<>a[13]);
     btn[14].Caption:=inttostr(a[14]);
    begin
    repeat
     a[15]:=random(16)+1
    until
     (a[15]<>a[1]) and (a[15]<>a[2]) and (a[15]<>a[3]) and
     (a[15]<>a[4]) and (a[15]<>a[6]) and (a[15]<>a[7]) and
     (a[15]<>a[5]) and (a[15]<>a[9]) and (a[15]<>a[8]) and
     (a[15]<>a[10]) and (a[15]<>a[11]) and (a[15]<>a[12])
     and (a[15]<>a[13]) and (a[15]<>a[14]);
     btn[15].Caption:=inttostr(a[15]);
    begin
    repeat
     a[16]:=random(16)+1
    until
     (a[16]<>a[1]) and (a[16]<>a[2]) and (a[16]<>a[3]) and
     (a[16]<>a[4]) and (a[16]<>a[6]) and (a[16]<>a[7]) and
     (a[16]<>a[5]) and (a[16]<>a[9]) and (a[16]<>a[8]) and
     (a[16]<>a[10]) and (a[16]<>a[11]) and (a[16]<>a[12])
     and (a[16]<>a[13]) and (a[16]<>a[14]) and (a[16]<>a[15]);
     btn[16].Caption:=inttostr(a[16]);
     timer3.Enabled:=true;
    end; end; end; end; end; end; end; end; end;
    end; end; end; end; end; end; end;

    Это у меня однокурсник писал пятнашки(данная процедура заполняет массив неповторяющимися числами от одного пятнадцати), и не лень же ему было...

    suc-daniil, 14 Октября 2011

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