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

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

    +18

    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
    /*
     *      The use of singletons for globals makes globals not
     *      actually be initialized until it is first needed, this
     *      makes the library faster to load, and have a smaller
     *      memory footprint
     */
    
    #define json_global_decl(TYPE, NAME, VALUE)                              \
    class jsonSingleton ## NAME {                                            \
    public:                                                                  \
            inline static TYPE & getValue() json_nothrow {                   \
                    static jsonSingleton ## NAME single;                     \
                    return single.val;                                       \
            }                                                                \
    protected:                                                               \
            inline jsonSingleton ## NAME() json_nothrow : val(VALUE) {}      \
            TYPE val;                                                        \
    }
    
    #define json_global(NAME) jsonSingleton ## NAME::getValue()              \
    
    json_global_decl(json_string, CONST_TRUE, JSON_TEXT("true"));
    json_global_decl(json_string, CONST_FALSE, JSON_TEXT("false"));
    json_global_decl(json_string, CONST_NULL, JSON_TEXT("null"));
    
    /* Использование */
    json_global(ERROR_NULL_IN_CHILDREN)

    Наткнулся на утечку памяти, отловленную Valgrind'ом
    А внутри вот это. И главное, совершенно непонятно, зачем воротить эту свистопляску, если линкеры умеют распознавать "true" по всюду (читаем про ROMability тут: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1396.pdf )
    http://stackoverflow.com/questions/690176/c-c-optimization-of-pointers-to-string-constants

    Сам код отсюда: http://code.google.com/p/wot-replay-parser/source/browse/libjson/Source/JSONGlobals.h

    myaut, 10 Декабря 2012

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

    +18

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    using namespace boost;
    typedef filesystem::recursive_directory_iterator dir_iter_t;
    dir_iter_t itt(filesystem::current_path());
    while ([&](dir_iter_t &itter) -> decltype(itter)
    {
        std::cout << boost::filesystem::path((*itter++).path()).make_preferred().string() << std::endl;
        return itter;
    }(itt) != dir_iter_t());

    Вчера ночью написал сие чудо , сегодня когда увидел - меня чуть приступ не хватил.
    Выводит в консоль всё содержимое текущего каталога и всех вложенных.

    suc-daniil, 15 Ноября 2012

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

    +18

    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
    bool isRightTriangle(int a, int b, int c)
    {
        int przeciw=a;
    	if (b>przeciw) przeciw = b;
    	if (c>przeciw) przeciw = c;
    
    	if (przeciw=a)
    		if (a*a==b*b+c*c) return true;
    	else if (przeciw=b)
    		if (b*b==a*a+c*c) return true;
    	else if (przeciw=c)
    		if (c*c==a*a+b*b) return true;
                
        return false;
    }

    Fai, 11 Ноября 2012

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

    +18

    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
    #include <iostream>
     
    int main() {
        // Инициализируй меня... полностью.
        void (*(&(*omg[])())[1]) (void (*)(void (*(*[])())())) = { [] () ->
        void (*(&)[1]) (void (*)(void (*(*[])())())) { static void (*f[])
        (void (*)(void (*(*[])())())) = { [] (void (*f)(void (*(*[])())())) {
        static void (*(*ff[])())() = { [] () -> void (*)() { return [] () {
        std::cout << "Test OK" << std::endl; }; } }; f(ff); } }; return f; } };
     
        // Вызывай, вызывай меня... полностью.
        omg[0]()[0]([] (void (*(*f[])())()) { f[0]()(); });
     
        return 0;
    }

    http://ideone.com/gvg1B7

    Говнокоду http://govnokod.ru/12066 посвящается.

    Инициализация массива указателей на функции, возвращающих ссылку на массив указателей на функции принимающие указатель на функцию, принимающую массив указателей на функции, возвращающих указатель на функцию ничего не принимающую и ничего не возвращающую.

    С++ это простой и наглядный язык.

    bormand, 07 Ноября 2012

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

    +18

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    template <class TBitMap, int MMCROffset>
    class TControllerMemoryMappedRegister: public TBaseControllerMemoryMappedRegister<MMCROffset>
    {
    public:
    	static void set(TBitMap::E Bit) { setBit(Bit); }
    	static void reset(TBitMap::E Bit) { resetBit(Bit); }
    };

    Говногость, 29 Октября 2012

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

    +18

    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
    char* GetConnectionName(){return "";}
    //---
    char*  NetworkMgr::getErrorString(int id)
    {
        if(this->idValid(id))
    {
    return errors[id];
    }
    else
    {
    return "!!!unknown error!!!";
    }
    }

    Из тела одного большого класса, я конечно понимаю что строки хранятся не в стеке, но всеравно.

    Psionic, 10 Сентября 2012

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

    +18

    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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    template <typename TYPE> class Ptr
    {
    public:
        Ptr():
            Pointer_(0),
            IsValid_(false)
        {
        }
        Ptr( const Ptr<TYPE> &other )
        {
            this->Pointer_ = other.Pointer_;
            this->IsValid_ = other.IsValid_;
        }
        Ptr( TYPE* &ptr ):
            IsValid_(true)
        {
            if ( std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), ptr ) == Ptr<TYPE>::List_.end() )
                Ptr<TYPE>::List_.push_back( ptr );
            this->Pointer_ = ptr;
        }
        ~Ptr()
        {
        }
    
        inline Ptr<TYPE>& operator = ( const Ptr<TYPE> &other )
        {
            this->Pointer_ = other.Pointer_;
            this->IsValid_ = other.IsValid_;
    
            return *this;
        }
    
        inline Ptr<TYPE>& operator = ( TYPE* &ptr )
        {
            if ( std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), ptr ) == Ptr<TYPE>::List_.end() )
                Ptr<TYPE>::List_.push_back( ptr );
    
            this->Pointer_ = ptr;
            this->IsValid_ = true;
    
            return *this;
        }
    
        inline bool operator == ( const Ptr<TYPE> &other )
        {
            return (this->Pointer_ == other.Pointer_) ? true:false;
        }
    
        inline bool operator != ( const Ptr<TYPE> &other )
        {
            return (this->Pointer_ != other.Pointer_) ? true:false;
        }
    
        inline TYPE* operator -> ()
        {
            return this->Pointer_;
        }
    
        inline bool isValid() const
        {
            if (!this->IsValid_)
                return false;
            return this->IsValid_ = ( (std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), this->Pointer_ ) == Ptr<TYPE>::List_.end() ) ? false:true );
        }
    
        inline void release()
        {
            if ( this->isValid() )
            {
                Ptr<TYPE>::List_.erase( std::find( Ptr<TYPE>::List_.begin(), Ptr<TYPE>::List_.end(), this->Pointer_ ) );
                delete this->Pointer_;
            }
    
            this->Pointer_ = 0;
            this->IsValid_ = false;
        }
    
        inline TYPE* get()
        {
            return this->Pointer_;
        }
    private:
        TYPE* Pointer_;
        mutable bool IsValid_;
    
        static std::list < TYPE* > List_;
    };
    
    template <typename TYPE> std::list < TYPE* > Ptr<TYPE>::List_;

    HaskellGovno, 12 Августа 2012

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

    +18

    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
    // ОЛОЛО ОЛОЛО КРЕСТОШАБЛОНЫ И ХУЙЛО
     if (ro<Fixed(100))
         DrawCircle<0>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(200))
         DrawCircle<1>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(400))
         DrawCircle<2>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(800))
         DrawCircle<3>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(1600))
         DrawCircle<4>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(3200))
         DrawCircle<5>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(6400))
         DrawCircle<6>(b, x, y, ri, ro, ball.color);
     else if (ro<Fixed(12800))
         DrawCircle<7>(b, x, y, ri, ro, ball.color);
     else
         DrawCircle<8>(b, x, y, ro, ri, ball.color);

    Я знаю, что рекурсивный крестошаблон сможет сделать то же самое, но крестопортянка всё равно быстрее пишется и выглядит нагляднее.

    TarasB, 26 Июля 2012

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

    +18

    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
    //---------------------------------------------------------
    void Link::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
    {
        Q_UNUSED(option);
        Q_UNUSED(widget);
    
    
        if ( mA && mB )
        {
            QPen pen(mColor, mPenWidth);
            painter->setPen(pen);
    
    
            if ( smooth() )
                painter->setRenderHint(QPainter::Antialiasing, true);
    
    
            QString ptname = mA->objectName() + QString("_point%1").arg(mAPoint);
            QDeclarativeItem *aConn = mA->findChild<QDeclarativeItem*>(ptname);
            QDeclarativeItem *bConn = *(QDeclarativeItem**) mB->property("root").constData();
    
    
            QRectF arect(aConn->x() + mA->x() - mB->x(), aConn->y() + mA->y() - mB->y(), aConn->width(), aConn->height());
            QRectF brect(bConn->x(), bConn->y(), bConn->width(), bConn->height());
    
    
            QLineF line(arect.center(), brect.center());
    
    
            painter->drawLine(line);
    
    
            if ( widget )
                widget->update();
       }
    }

    Из коммита где-то в 4:00 :)

    Elvenfighter, 30 Апреля 2012

    Комментарии (11)
  11. JavaScript / Говнокод #360

    +18

    1. 1
    2. 2
    3. 3
    <script>
    document.write("/^\ - вот говно_код");
    </script>

    Реальный говнокод

    guest, 11 Января 2009

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