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

    Всего: 223

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

    +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
    struct Base { };
    
    struct Class : Base
    {
        int mem{ 0 };  // init non-static data member
    
        Class(int i)
        : Base{}   // init base class
        , mem{i}   // init member
        {
          int j{i};   // init local var
    
          int k = int{0};  // init temporary
    
          f( { 1 } );  // init function arg
    
          int* p = new int{1};  // new init
    
          // int k(int());  // most vexing parse, declares function
          int k{ int{} };   // ok, declares variable
    
          int i[4]{ 1,2,3,4 };   // init array
        }
    
        Class f(int i)
        {
          return { i };   // init return value
        }
    };
    
    Class c{1};   // init global var

    LispGovno, 28 Января 2013

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

    +22

    1. 1
    2. 2
    3. 3
    4. 4
    list<int> list;
    ...
    for(auto i=0;i<list.size();i++){
        auto item = *next(list.begin(), i);

    Вчера у меня появился каллега.
    http://liveworkspace.org/code/1AWg24$5
    Кажется я знаю, кто следующий будет сидеть на табуретке. Думаете стоит сказать ему?

    LispGovno, 27 Января 2013

    Комментарии (108)
  4. Куча / Говнокод #12482

    +130

    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
    import std.stdio; 
    class Parent{ } 
    class Another{ } 
    class Child: Parent
    {
      Another data;
      alias data this;  
      this()
      {
      data = new Another;
      }
    }
     void test(Parent t){writeln("Parent: ", t);}
     void test(Another t){writeln("Another: ", t);}
     void main() { 
        auto Me = new Child();    
        test(Me);
    }

    Интуитивного свежачка вам.
    http://ideone.com/qEDzz
    http://ideone.com/9mB8S

    LispGovno, 27 Января 2013

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

    +21

    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
    #define SWITCH(str)  switch(str_hash_for_switch(str))
    #define CASE(str)    static_assert(str_is_correct(str) && (str_len(str) <= MAX_LEN),\
    "CASE string contains wrong characters, or its length is greater than 9");\
    case str_hash(str, str_len(str))
    #define DEFAULT  default
    
    typedef unsigned char uchar;
        typedef unsigned long long ullong;
    
        const uchar MAX_LEN = 9;
        const ullong N_HASH = static_cast<ullong>(-1);
    
        constexpr ullong raise_128_to(const uchar power)
        {
            return 1ULL << 7 * power;
        }
    
        constexpr bool str_is_correct(const char* const str)
        {
            return (static_cast<signed char>(*str) > 0) ? str_is_correct(str + 1) : (*str ? false : true);
        }
    
        constexpr uchar str_len(const char* const str)
        {
            return *str ? (1 + str_len(str + 1)) : 0;
        }
    
        constexpr ullong str_hash(const char* const str, const uchar current_len)
        {
            return *str ? (raise_128_to(current_len - 1) * static_cast<uchar>(*str) + str_hash(str + 1, current_len - 1)) : 0;
        }
    
        inline ullong str_hash_for_switch(const char* const str)
        {
            return (str_is_correct(str) && (str_len(str) <= MAX_LEN)) ? str_hash(str, str_len(str)) : N_HASH;
        }
    
        inline ullong str_hash_for_switch(const std::string& str)
        {
            return (str_is_correct(str.c_str()) && (str.length() <= MAX_LEN)) ? str_hash(str.c_str(), str.length()) : N_HASH;
        }

    Запостил из-за ошибки на некоторых платформах и компиляторах.

    LispGovno, 23 Января 2013

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

    +8

    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
    #include <iostream>
     
    struct Reader_msg;
    template<class T>struct TMsg;
     
    struct IMsg
    {
        virtual ~IMsg(){}
        virtual void SendCast(Reader_msg& obj) = 0;
    };
     
    struct Some{}; 
     
    struct Reader_msg
    {
        template<class T> void ReadMsg(T& msg)
        {
            //Здесь можно приляпать статик_ассерт
            std::cout<<"ERROR UNKNOW TYPE \n";
        }
        void ReadMsg(int msg)   { (void)msg; std::cout<<"TYPE IS INT\n";   }
        void ReadMsg(float msg) { (void)msg; std::cout<<"TYPE IS FLOAT\n"; }
        void ReadMsg(Some msg)  { (void)msg; std::cout<<"TYPE IS SOME\n";  }
     
        template<class T>void TakeMsg(T& msg) { msg.SendCast(*this); }
    };
     
    template<class T>struct TMsg:IMsg
    {
        T data;
        void SendCast(Reader_msg& obj){ obj.ReadMsg(data); }
    };
     
     
    int main()
    {
        Reader_msg reader;
        TMsg<int>    msg1;
        TMsg<float>  msg2;
        IMsg& msg3 = msg1;
        IMsg& msg4 = msg2;
        TMsg<Some>   msg5;
        TMsg<double> msg6;
        
     
        reader.TakeMsg(msg1);
        reader.TakeMsg(msg2);
        reader.TakeMsg(msg3);
        reader.TakeMsg(msg4);
        reader.TakeMsg(msg5);
        reader.TakeMsg(msg6);
    }

    http://liveworkspace.org/code/4FHDTq$6

    LispGovno, 18 Января 2013

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

    +12

    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
    int n, a[n]; //n - количество элементов
    void qs(int* s_arr, int first, int last) {
      int i = first, j = last, x = s_arr[(first + last) / 2]; 
      do   {
        while (s_arr[i] < x) i++;
        while (s_arr[j] > x) j--; 
        if(i <= j)  {
          if (i < j) swap(s_arr[i], s_arr[j]);
          i++;
          j--; }}
      while (i <= j);
      if (i < last) {
        qs(s_arr, i, last);  }
      if (first < j)  {
        qs(s_arr, first,j); }}

    Оттуда

    LispGovno, 17 Января 2013

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

    +23

    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
    volatile bool b;
    
    class BoolKeeper
    {
      bool &fb;
    public:
      BoolKeeper(bool &b) 
      {
        while (b);
        b = true;
      }
      ~BoolKeeper ()
      {
        b = false;
      }  
    }
    
    void Thread1
    {
      BoolKeeper ololo(b);
      // что-то делаем
    }
    
    void Thread2
    {
      // что-то делаем
      BoolKeeper ololo(b); 
      // что-то делаем, причём в этом месте нам важен факт, что Thread1 не выполняется
    }

    http://www.gamedev.ru/flame/forum/?id=171558

    LispGovno, 13 Января 2013

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

    +11

    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
    #include <QVector>
    #include <QString>
    
    template< class TYPE> 
      class call
      {
        public:
          call( TYPE& vl ): value(vl){}
          TYPE& value;
      };
    template< class TYPE> 
      call<TYPE> all( TYPE& vl ) 
        { return call<TYPE>(vl); }
    
    template< class TYPE_OUT, class TYPE> 
      void operator << ( TYPE_OUT& out, call<TYPE>& in )
    {
      TYPE& value = in.value;
      for( TYPE::iterator itr = value.begin() ; itr!=value.end(); itr++)
        out << *itr;
    }
    
    //**********************************************************************
    
    QVector<int> arr;
    QVector<QString> arrStr;
    class Cstream{} stream;
    
    void operator << ( Cstream& , const int value)
    {
      printf("%i\n",value);
    }
    void operator << ( Cstream& , const QString& value)
    {
      printf("%s\n",value.toAscii().data());
    }
    
    
    int main(int argc, char *argv[])
    {
      for( int i=0; i<6;i++)
        arr.push_back(i);
      arrStr << "asd" << "sadas" << "sadsa";
    
      stream << all(arr);
      stream << all(arrStr);
    return 0;
    }

    http://www.gamedev.ru/flame/forum/?id=171504
    > @При копирование на говнокод сохранять авторство.

    LispGovno, 11 Января 2013

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

    +23

    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
    struct S* gpS;
    
    struct S
    {
       // this class has no user-defined default ctor
       void *operator new (size_t size, void*p, int i)
       {
          ((S*)p)->i = i;   // ordinarily, should not initialize
                            // memory contents inside placement new
          return p;
       }
       int i;
    };

    Код с сайта майкрософт.

    LispGovno, 09 Января 2013

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

    +24

    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
    #include <iostream>
    #define n 1
    int main()
    {
    using namespace std;
    cout << (n < 0 ? 1 : 0)+
    ((n << 1) < 0 ? 1 : 0)+
    ((n << 2) < 0 ? 1 : 0)+
    ((n << 3) < 0 ? 1 : 0)+
    ((n << 4) < 0 ? 1 : 0)+
    ((n << 5) < 0 ? 1 : 0)+
    ((n << 6) < 0 ? 1 : 0)+
    ((n << 7) < 0 ? 1 : 0)+
    ((n << 8) < 0 ? 1 : 0)+
    ((n << 9) < 0 ? 1 : 0)+
    ((n << 10) < 0 ? 1 : 0)+
    ((n << 11) < 0 ? 1 : 0)+
    ((n << 12) < 0 ? 1 : 0)+
    ((n << 13) < 0 ? 1 : 0)+
    ((n << 14) < 0 ? 1 : 0)+
    ((n << 15) < 0 ? 1 : 0)+
    ((n << 16) < 0 ? 1 : 0)+
    ((n << 17) < 0 ? 1 : 0)+
    ((n << 18) < 0 ? 1 : 0)+
    ((n << 19) < 0 ? 1 : 0)+
    ((n << 20) < 0 ? 1 : 0)+
    ((n << 21) < 0 ? 1 : 0)+
    ((n << 22) < 0 ? 1 : 0)+
    ((n << 23) < 0 ? 1 : 0)+
    ((n << 24) < 0 ? 1 : 0)+
    ((n << 25) < 0 ? 1 : 0)+
    ((n << 26) < 0 ? 1 : 0)+
    ((n << 27) < 0 ? 1 : 0)+
    ((n << 28) < 0 ? 1 : 0)+
    ((n << 29) < 0 ? 1 : 0)+
    ((n << 30) < 0 ? 1 : 0)+
    ((n << 31) < 0 ? 1 : 0)
    << endl;
    return 0;
    }

    Для заданного пятизначного целого числа подсчитать количество его нулей.
    Прямо с экзамена. Преподаватель катается по полу. Не шучу.

    LispGovno, 25 Декабря 2012

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