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

    +34

    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
    class A
    {
    public:
        unsigned int m_value;
    
        inline bool operator != ( const A & value )
        {
            unsigned int temp;
            temp = 0 != ( m_value != value.m_value );
            return 0 == temp;
        }
    
        inline bool operator == ( const A & value )
        {
            unsigned int temp;
            temp = 0 != ( m_value == value.m_value );
            return 0 != temp;
        }
    };

    Фрагмент кода одной коммерческой библиотеки. Имя класса изменено, 100500 прочих методов вырезано, но они похожи на эти.
    Я не буду акцентировать внимание на том, что операторы невозможно использовать для константных объектов, даже не буду говорить о странном способе сравнения целых чисел... Но я упомяну о том, что 'operator !=' работает немножко не так, как руссо-индусы ожидали.

    Запостил: Little-Horny, 24 Июня 2013

    Комментарии (28) RSS

    Добавить комментарий