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

    +151

    1. 1
    return *reinterpret_cast<ChatUnitList*>(&m_contacts); //black magic

    Действительно черная магия... Хотя работает, но я не уверен, что на всех платформах

    Запостил: Sauron, 28 Июня 2010

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

    • показать все, что скрытоSauron захватывает Средиземье чёрной магией?
      Ответить
    • А что такое m_contacts ?
      Ответить
    • Если не уверен, лучше, по-моему, использовать static_cast, а так - норм конструкция, никакая не черная магия :)
      Ответить
      • статик каст, например, не преобразует значение в указатель)
        Ответить
        • Естесственно, ведь он не для этого нужен, правда в приведенном выше примере кода я не вижу "преобразования значения в указатель" :)
          Ответить
    • показать все, что скрытоКРЕСТОБЛЯДСКИЕ ПРОБЛЕМЫ
      Ответить
    • на мой взгляд reinterpret_cast использовать максимум использования С библиотек, а если же использовать в ООП, то это чистейший говнокод.
      Ответить
      • Для приведения QList<Contact *> в QList<ChatUnit*> он в теории безопасен, ибо размер указателя не меняется, а Contact наследуется от ChatUnit'а. У решения другая проблема - оно некрасивое.
        Ответить

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