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

    +46

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    extern QString code2text(unsigned long code)
    {
        if (code == 0) return QString::fromUtf8("Операция успешно завершена");
        if (code == 1) return QString::fromUtf8("Неверная функция");
        //over 3400 строк
        return QString("%1").arg(code);
    }

    как это сделать по человечески?
    полная версия https://github.com/kin63camapa/softodrom/blob/master/softodrom/errcodes.cpp

    kin63camapa, 07 Января 2015

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

    +46

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    In file included from ./boost/bind/bind.hpp:29:0,
                     from ./boost/bind.hpp:22,
                     from ./boost/multi_index/sequenced_index.hpp:50,
                     from ./boost/property_tree/ptree.hpp:23,
                     from ./boost/log/utility/setup/settings.hpp:26,
                     from ./boost/log/utility/setup/from_settings.hpp:25,
                     from libs/log/src/init_from_stream.cpp:19:
    ./boost/bind/arg.hpp: In constructor ‘boost::arg<I>::arg(const T&)’:
    ./boost/bind/arg.hpp:37:22: warning: typedef ‘T_must_be_placeholder’ locally defined but not used [-Wunused-local-typedefs]
             typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];

    Выхлоп при компиляции зломерзкого (из-за громоздкости разумеется) boost. Шаблоны такие шаблоны. А всё из-за того, что надо поставить на ix2 deluge т.к встроенная качалка торрентов не умеет качать торренты (там можно только указать ограничение скорости и порты, но добавить torrent или magnet некуда).

    mittorn, 07 Января 2015

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

    +56

    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>
    #include <thread>
    #include <list>
    #include <functional>
    #include <chrono>
    using namespace std;
    
    void outputToSomeContainer(int val, list<int>& result){
       result.push_back(val);
    }
    
    class async{
      list<thread> a;
    public:
      async(){}
      async(async&& a): a(move(a.a))
      {}
      void addTask(function<void()>&&f){
        a.emplace_back(move(f));
      }
      void wait(){
        for(auto&& i: a)
          i.join();
      }
    };
    
    async async_O_n_Sort(const list<char>& unsorted, function<void(int)> outputToContainer){
      async a;
      for(int i: unsorted)//O(n)
        a.addTask([i, outputToContainer](){this_thread::sleep_for(chrono::milliseconds(5+i*10));outputToContainer(i);});
      return a;
    }
    
    int main() {
      list<char> unsorted {1, 0, 6, 3, 4};
      list<int> sorted;
      auto a = async_O_n_Sort(unsorted, bind(outputToSomeContainer, placeholders::_1, ref(sorted)));
      cout<<"А мы веселые пельменья, мы похоже на варенья"<<endl;
      a.wait();
      for(int i: sorted)
          cout<<i<<endl;
      return 0;
    }

    Тред:

    http://www.gamedev.ru/flame/forum/?id=196521
    http://coliru.stacked-crooked.com/a/c317bee4dbe183ab

    laMer007, 05 Января 2015

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

    +57

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /* Fix NAN constant for VisualC++. */
       #ifdef _MSC_VER
          #ifndef NAN
              static const unsigned long __nan[2] = {0xffffffff, 0x7fffffff};
              #define NAN (*(const float *) __nan)
          #endif
       #endif

    ????

    Pythoner, 30 Декабря 2014

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

    +51

    1. 1
    static void operator()(int atan)

    Wat?

    LispGovno, 30 Декабря 2014

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

    +51

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    class PrimitiveList : public QList<Primitive>
    {
    public:
        using QList<Primitive>::QList;
    
        PrimitiveList mid(int pos, int length = -1) const
        {
            auto &&list = QList<Primitive>::mid(pos, length);
            return static_cast<PrimitiveList&&>(list);
        }
    };

    Необычное использование move семантики.

    gorthauer87, 26 Декабря 2014

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

    +59

    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
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        FILE *fp;
        char hc1,hc2,mc1,mc2;
        int hi1,hi2,mi1,mi2,hour,minute;
        system("echo %time% >time.txt");
        fp=fopen("time.txt","r");
        if(fp==NULL)
           exit(1) ;
        hc1=fgetc(fp);
        hc2=fgetc(fp);
        fgetc(fp);
        mc1=fgetc(fp);
        mc2=fgetc(fp);
        fclose(fp);
        remove("time.txt");
        hi1=hc1;
        hi2=hc2;
        mi1=mc1;
        mi2=mc2;
        hi1-=48;
        hi2-=48;
        mi1-=48;
        mi2-=48;
        hour=hi1*10+hi2;
        minute=mi1*10+mi2;
        printf("Current time is %d:%d\n",hour,minute);
        return 0;
    }

    Как узнать текущее время особо извращенным образом. http://stackoverflow.com/questions/5141960/get-the-current-time-in-c

    ales-hon-ne, 24 Декабря 2014

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

    +58

    1. 1
    int (o)(0);

    http://ideone.com/9JL6K4

    bormand, 22 Декабря 2014

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

    +50

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <iostream>
     
    void koko() { return throw "kook"; }
     
    int main() try {
    	koko();
    } catch(const char * e) {
    	std::cout << e;
    }

    когда никто не видит, throw возвращает void
    http://ideone.com/VDMPwE

    Xom94ok, 22 Декабря 2014

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

    +48

    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
    #include <iostream>
    
    #include "msg/messagehandler.h"
    #include "msg/messagedispatcher.h"
    
    #include "kukarek.h"
    #include "pocpocpoc.h"
    
    using namespace std;
    
    class Foo : public MessageHandler
    {
    public:
        Foo(MessageDispatcher* dispatcher):
            MessageHandler(dispatcher)
        {
            using namespace std::placeholders;
            subscribe<Kukarek>(bind(&Foo::kukarek, this, _1));
        }
    
        void foo()
        {
            sendMessage(PocPocPoc{5});
        }
    
        void kukarek(const Kukarek& k)
        {
            cout << "Foo Kukarek " << k.i << endl;
        }
    };
    
    class Bar : public MessageHandler
    {
    public:
        Bar(MessageDispatcher* dispatcher):
            MessageHandler(dispatcher)
        {
            using namespace std::placeholders;
            subscribe<PocPocPoc>(bind(&Bar::pocpocpoc, this, _1));
            subscribe<Kukarek>(bind(&Bar::kukarek, this, _1));
        }
    
        void bar()
        {
            sendMessage(Kukarek{42});
        }
    
        void kukarek(const Kukarek& k)
        {
            cout << "Bar Kukarek " << k.i << endl;
        }
    
        void pocpocpoc(const PocPocPoc& p)
        {
            cout << "Bar PocPocPoc " << p.j << endl;
        }
    };
    
    int main()
    {
        MessageDispatcher dispatcher;
        Foo f(&dispatcher);
        Bar b(&dispatcher);
        cout << "Hello World!" << endl;
        f.foo();
        b.bar();
        return 0;
    }

    Hello World!
    Bar PocPocPoc 5
    Foo Kukarek 42
    Bar Kukarek 42
    https://code.google.com/p/message-poc-poc-poc/

    DlangGovno, 18 Декабря 2014

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