1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #15416

    +24

    1. 1
    ((x<0) && (y < 0)) ? ({x =-x; y=-y;}) : (((x < 0) || (y < 0)) ? ({x+=0.5; y+=0.5;}) : ( (!(((x > 2.0) || (x < 0.5)) && ( (y > 2.0) || (y < 0.5) ))) ? : ({x/=10;y/=10;}) ) );

    простейшее задание на условия...

    mccloud, 10 Марта 2014

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

    +24

    1. 1
    int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){

    http://ideone.com/BcZ7Ja

    LispGovno, 02 Февраля 2014

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

    +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
    any<
        mpl::vector<
            copy_constructible<>,
            typeid_<>,
            incrementable<>,
            ostreamable<>
        >
    > x(10);
    ++x;
    std::cout << x << std::endl; // prints 11
    
    
    
    The library provides concepts for most C++ operators, but this obviously won't cover all use cases; we often need to define our own requirements. Let's take the push_back member, defined by several STL containers.
    BOOST_TYPE_ERASURE_MEMBER((has_push_back), push_back, 1)
    
    void append_many(any<has_push_back<void(int)>, _self&> container) {
        for(int i = 0; i < 10; ++i)
            container.push_back(i);
    }

    Я ждал этого! В С++ добавили dynamic из сишарпика.

    LispGovno, 27 Июня 2013

    Комментарии (24)
  5. 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)
  6. C++ / Говнокод #12827

    +24

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    void sleep_in_qt_ms(unsigned millisec) {
        QMutex foo;
        foo.lock();
        foo.try_lock(millisec);
        foo.unlock();
    }

    sleep в Qt - что, серьезно, чтоли?

    особенно порадовало: Warning: Destroying a locked mutex may result in undefined behavior.
    действительно, накой нам деструкторы?

    defecate-plusplus, 29 Марта 2013

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

    +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
    tmpPtr = SCPGetFreeTextMedicalHistory(ecg);
    if (!tmpPtr) tmpPtr = unsp;
    m_patientPage->SetDlgItemTextW(IDC_EDIT15, tmpPtr);
    if (tmpPtr != unsp) SCPFreeMem(tmpPtr);
    
    tmpPtr = SCPGetTechnicianDescription(ecg);
    if (!tmpPtr) tmpPtr = unsp;
    m_miscPage->SetDlgItemTextW(IDC_EDIT19, tmpPtr);
    if (tmpPtr != unsp) SCPFreeMem(tmpPtr);
    
    . . .
    
    tmpPtr = SCPGetLatestConfirmingPhysician(ecg);
    if (!tmpPtr) tmpPtr = unsp;
    m_miscPage->SetDlgItemTextW(IDC_EDIT18, tmpPtr);
    if (tmpPtr != unsp) SCPFreeMem(tmpPtr);
    
    tmpPtr = SCPGetReferringPhysician(ecg);
    if (!tmpPtr) tmpPtr = unsp;
    m_miscPage->SetDlgItemTextW(IDC_EDIT17, tmpPtr);
    if (tmpPtr != unsp) SCPFreeMem(tmpPtr);
    
    . . .

    just_nameless, 25 Марта 2013

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

    +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
    int MyForm::modelId(int button, bool rarefied, bool grouped)
    {
        if (button == 4)
            return 9;
        else
        {
            Q_ASSERT(button == 1 || button == 2 || button == 3);
            if (!rarefied)
                return (button - 1);
            else
            {
                if (!grouped)
                    return 3 + (button - 1);
                else
                    return 6 + (button - 1);
            }
        }
    }

    Энумы? Не, не слышал.

    ABBAPOH, 14 Февраля 2013

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

    +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
    template <typename IdType, class Tag>
    class id {
    public:
        typedef IdType value_type;
    
        explicit id(value_type val)
            : value(val)
        {}
    
        bool operator==(id rhs)
        {
            return rhs.value == value;
        }
    
        bool operator!=(id rhs)
        {
            return rhs.value != value;
        }
    
        value_type value;
    };
    
    #define HASKELL_NEWTYPE(type_name, value_type) struct __##type_name##_tag__ {}; \
        typedef ::id<value_type, __##type_name##_tag__> type_name

    Когда newtype нет, но очень хочется.
    http://ideone.com/VRu56j
    Простите за синтетику

    roman-kashitsyn, 14 Февраля 2013

    Комментарии (21)
  10. 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)
  11. C++ / Говнокод #12348

    +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
    #ifndef JSON_SPIRIT_READER_TEMPLATE
    #define JSON_SPIRIT_READER_TEMPLATE
    
    //          Copyright ***
    // Distributed under the MIT License, see accompanying file LICENSE.txt
    
    // json spirit version 4.05
    
    #if defined(_MSC_VER) && (_MSC_VER >= 1020)
    # pragma once
    #endif
    
    //some classes
    
    #endif

    Сначала проверим многократное включение через макросы, а потом # pragma once - чтобы наверняка!

    Try, 24 Декабря 2012

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