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

    −16

    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
    template <class T>
    inline T qobject_cast(const QObject *object)
    {
        // this will cause a compilation error if T is not const
        register T ptr = static_cast<T>(object);
        Q_UNUSED(ptr);
    
    #if !defined(QT_NO_MEMBER_TEMPLATES) && !defined(QT_NO_QOBJECT_CHECK)
        reinterpret_cast<T>(0)->qt_check_for_QOBJECT_macro(*reinterpret_cast<T>(const_cast<QObject *>(object)));
    #endif
        return static_cast<T>(const_cast<QObject *>(reinterpret_cast<T>(0)->staticMetaObject.cast(const_cast<QObject
     *>(object))));
    }

    Кастовали-кастовали и выкастовали!
    corelib/kernel/qobject.h в Qt 4.7.x

    Запостил: bormand, 12 Июня 2012

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

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