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

    +35

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #if defined(_WIN32) || defined(_WIN64)
        ofstream outfile("help.txt");
        outfile << message << endl;
        system("notepad.exe help.txt");
     #else
        cout << message ;
    #endif

    Зачем бороться с юникодом в консоли, когда есть блокнот?

    crastinus, 03 Июня 2013

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

    +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
    #ifndef SAFE_RELEASE
    #define SAFE_RELEASE(x) \
       if(x != NULL)        \
       {                    \
          x->Release();     \
          x = NULL;         \
       }
    #endif
    
    #define SAFE_DELETE(a) if( (a) != NULL ) delete (a); (a) = NULL;
    
    #ifndef SAFE_ARRAY_DELETE
    #define SAFE_ARRAY_DELETE(x) \
       if(x != NULL)             \
       {                         \
          delete[] x;            \
          x = NULL;              \
       }
    #endif
    
    #define SAFE_FREE( p )      if( p ) { free( p ) ; p=NULL ; }

    Я вот все никак не могу забыть старый код из доков макрософт по COM, а также из книги Андре Ла Мота.

    Два макроса до сих пор висят среди доков на сайте мс (по коду догадаетесь какие):

    http://msdn.microsoft.com/ru-RU/library/windows/desktop/dd743946(v=vs.85).aspx

    LispGovno, 01 Июня 2013

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

    +14

    1. 1
    std::set_unexpected( [] () {} );

    Студия достала и не позволяла обрабатывать исключения, а они нужны были для демонстрации работы, в итоге навесил такой костыль и включил SEH исключения в параметрах компиляции.

    maksim_ovcharik, 29 Мая 2013

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

    +24

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    int randomize(int Min, int Max)
    {
    qsrand(QTime::currentTime().msec());
    if (Min > Max)
    {
    int Temp = Min;
    Min = Max;
    Max = Temp;
    }
    return ((qrand()%(Max-Min+1))+Min);
    }

    Всё хорошо?

    Hackeridze, 29 Мая 2013

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

    +26

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (Keys == 0 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == false) { ... }
    if (Keys == 1 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == false) { ... }
    if (Keys == 2 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == false) { ... }
    if (Keys == 3 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == true) { ... }
    if (Keys == 4 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == false) { ... }
    if (Keys == 5 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == true) { ... }
    if (Keys == 6 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == true) { ... }
    if (Keys == 7 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == true) { ... }

    Без комментариев. Думаю, тут и так все понятно ;)

    bormand, 23 Мая 2013

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

    +14

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    uint8_t* head = (uint8_t*) Buffer::Data(buffer);
    uint8_t* tail = head + Buffer::Length(buffer) - 1;
    
    // xor swap, just because I can
    while (head < tail) *head ^= *tail, *tail ^= *head, *head ^= *tail, ++head, --tail;

    https://github.com/bnoordhuis/node-buffertools/blob/master/buffertools.cc#L157

    movaxbx, 22 Мая 2013

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

    +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
    for (int i = 1; i++; i <= 20) {
        if (ExecSQL(...) >= 0) {
            Ok_rekord=true;
            break;
        }
        if (i == 20) {
            if (ExecSQL(...) < 0) {
                // показываем сообщение об ошибке
            } else {
                Ok_rekord=true;
            }
        }
    }

    Вот такой вот цикл для повтора при дедлоке...

    bormand, 20 Мая 2013

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

    +6

    1. 1
    http://www.work.ua/jobs/1286767/

    Я, конечно, знал, что С++ плох, но чтобы настолько...

    serpinski, 19 Мая 2013

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

    +17

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    int getFilesize(char* fname) {
        int f=open(fname, O_RDONLY);
        int size=0;
        if (f<0) {/*не важно*/}
        size=lseek(f, 0, SEEK_END);
        close(f);
        return size;
    }

    Писал прогу под линукс впервые. К концу написания уже знал что такое stat(), но как глянул в начало...)))))

    eax, 18 Мая 2013

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

    +12

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // precondition: you already have a boost::shared_ptr<> to this or a derived object
    template<typename T>
    inline boost::shared_ptr<T> get_shared_ptr()
    { 
                // this cast lets the compiler verify the type compatibility
                assert( dynamic_cast<typename boost::shared_ptr<T>::element_type*>( &(*shared_from_this()) ) != 0);
                return *(boost::shared_ptr<T>*) &shared_from_this();
    }

    -

    blackhearted, 15 Мая 2013

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