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

    +30

    1. 1
    if( str[0] == '<' || str[1] == '?' || str[2] == 'x' || str[3] == 'm' || str[4] == 'l') {...}

    Проверка на xml-ность

    bazhenovc, 24 Октября 2012

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

    +25

    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
    template <typename T> struct Pool { static std::vector<T> data; };
    
    std::vector<tbphys::Body> Pool<tbphys::Body>::data;
    std::vector<Ball>         Pool<Ball>        ::data;
    std::vector<Wall>         Pool<Wall>        ::data;
    std::vector<Bat>          Pool<Bat>         ::data;
    std::vector<Brick>        Pool<Brick>       ::data;
    
    template <typename T, typename U> struct List
    {
    	typedef T Head;
    	typedef U Tail;
    };
    
    struct End {};
    
    typedef List<tbphys::Body, List<Brick, List<Bat, List<Ball, List<Wall, End> > > > > Components;
    typedef List<Brick, List<Bat, List<Ball, List<Wall, End> > > > DrawableComponents;
    typedef List<Brick, List<Ball, List<Bat, End> > > MovableComponents;
    
    const size_t badindex = size_t(-1);
    
    struct GameBody
    {
    	size_t self,body,bat,brick,wall,ball;
    
    	template <typename T> size_t& IndexOf ();
    	template <> size_t& IndexOf <tbphys::Body> () {return body;}
    	template <> size_t& IndexOf <Bat  >        () {return bat;}
    	template <> size_t& IndexOf <Brick>        () {return brick;}
    	template <> size_t& IndexOf <Wall >        () {return wall;}
    	template <> size_t& IndexOf <Ball >        () {return ball;}
    
    	template <typename T>
    	T& AddComponent ()
    	{
    		size_t index = Pool<T>::data.size();
    		Pool<T>::data.resize(index+1);
    		T& result = Pool<T>::data[index];
    
    		result.hostIndex = self;	
    		IndexOf<T>() = index;
    		return result;
    	}
    
    	template <typename T> void SetBadIndex ()
    	{
    		IndexOf<T::Head> () = badindex;
    		SetBadIndex<T::Tail> ();
    	}
    	template <> void SetBadIndex <End> () {}
    };

    Сколько тут говнопаттернов крестоблядского крестоязыка?

    TarasB, 22 Октября 2012

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

    +9

    1. 1
    http://ideone.com/vvkWO4

    Fai, 21 Октября 2012

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

    +28

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    const std::string cyrillic = "аАбБвВгГдДеЕёЁжЖзЗиИйЙкКлЛмМнНоОпПрРсСтТуУфФхХцЦчЧшШщЩъЪыЫьЬэЭюЮяЯ";
    
    std::string cyrillic_toupper(std::string s)
    {
       if(cyrillic.find(s) == std::string::npos)
          throw std::runtime_error(std::string("cyrillic_toupper(): ") + "'" + s + "' is not cyrillic char");
    
       return cyrillic.substr(cyrillic.find(s) + 2, 2);
    }

    an0nym, 21 Октября 2012

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

    +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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main()
    {
        unsigned int input[65536];
        int counter=0;
        while(scanf("%u", &(input[counter++])) != EOF);
        while (counter-- > 0) printf("%.4f\n", sqrt((double)(input[counter])));
        return 0;
    }

    Реализация задачи http://acm.timus.ru/problem.aspx?space=1&num=1001

    kganker, 19 Октября 2012

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

    +26

    1. 1
    2. 2
    3. 3
    4. 4
    std::RAII_File(fileName, moda, [&](std::IOHandle fHandle)
    {
       //...
    });

    Паrни. Что-за код мне достался? Какой наркоман это написал? У него же ЛГМ лямбда головного мозга.
    О std-инъекциях я даже молчу.

    LispGovno, 19 Октября 2012

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

    +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
    #include <conio.h>
    #include <stdio.h>
     
     
    const int SIZE = 33;
     
    void DecToBin (unsigned int num, char *bin)
    {
       int i,j;
       char tmp[SIZE];
     
       for(i=0; num; num>>=1, i++)
               tmp[i] = (num&1)?('1'):('0');
       
       for(j=0; j<i; j++)
               bin[j] = tmp[i-j-1];
       bin[j]='\0';
    }
     
    unsigned int shl(unsigned int num, int shift)
    {
            return (num << shift) | (num >> 32 - shift);
    }
     
    void main()
    {
            int n, m;
            scanf("%d", &n);
            
            char bin[SIZE];
     
            DecToBin(n,bin);
            printf("%s\n", bin);
     
            m = shl(n, 35);
            DecToBin(m,bin);
        printf("%s\n", bin);
            _getch();
    }

    Еще одна очередная лаба, но уже код преподавателя, который он дал в качестве примера. Сказал что код на C++ (к вопросу, где здесь с++), и что нам нужно переписать его на "яве".

    maksim_ovcharik, 18 Октября 2012

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

    +22

    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
    #include <iostream>
    
    using namespace std;
    
    auto fw(int i)->bool
    {
       return cout<<"Привет станция мир"<<i<<"!"<<endl, true;
    }
    
    auto ff()->bool
    {
       return cout<<"Это должно быть последние выполненное подвыражение."<<endl, false;
    }
    auto ft()->bool
    {
       return cout<<"Хьюстон, у нас КРЕСТОПРОБЛЕМЫ. Нарушен порядок вычисления и ленивость логических операторов. Мы падаем!!!!1111"<<endl, true;
    }
    
    struct TBabylonBug
    {
       bool a=true;
       TBabylonBug(){}
       TBabylonBug(bool a):a(a){}
       const TBabylonBug operator&&(const bool ophui) const 
       {
          return a&&ophui;
       }
       const TBabylonBug operator&&(const TBabylonBug& ophui) const 
       {
          return a&&ophui.a;
       }
    };
    
    int main() {
       cout<<"кo"<<endl;
       true&&fw(1)&&fw(2)&&ff()&&ft();
       cout<<"кo ко"<<endl;
       cout<<"TBabylonBug().a = "<<boolalpha<<TBabylonBug().a<<endl;
       TBabylonBug()&&fw(1)&&fw(2)&&ff()&&ft();
       cout<<"кo ко ко"<<endl;
       return 0;
    }

    http://liveworkspace.org/code/efffb5204b0f69a2725b7d9f4ba0d570

    LispGovno, 17 Октября 2012

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

    +27

    1. 1
    cout<<!0&&0;

    Что вернет?
    1) 1||0&&0
    2) !0&&0
    3) Приоритет оператора "!" ?
    http://ideone.com/hHdZ1
    http://ideone.com/s8Cj0


    Сории за толстейший троллинг.

    LispGovno, 17 Октября 2012

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

    +33

    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
    std::function<int()> gl()
    {
       int a=0;
       return [=]()mutable{return a++;};
    }
    
    int main() 
    {
       auto a=gl();
       cout 
          <<a()
          <<endl
          <<a()
          <<endl
          <<a()
          <<endl
          <<a();
       return 0;
    }

    http://liveworkspace.org/code/22012a32e91743cd7357c86930df4b9c

    Не совсем гавно, но порядок выполнения операторов вывода C++ для меня оказался неожиданным и не интуитивным.

    LispGovno, 17 Октября 2012

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