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

    +3

    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
    FOREACHINLIST(CBrushMip, bm_lnInBrush, penbr->GetBrush()->br_lhBrushMips, itbm)
      {
        CBrushMip &brmip=*itbm;
        FOREACHINDYNAMICARRAY(itbm->bm_abscSectors, CBrushSector, itbsc)
        {
          CBrushSector &bsc=*itbsc;
          FOREACHINSTATICARRAY(itbsc->bsc_abpoPolygons, CBrushPolygon, itbpo)
          {
            CBrushPolygon &bpo=*itbpo;
            CheckOnePolygon(bsc, bpo);
          }
        }
      }

    И такое используется во всём SeriousEngine

    Запостил: mittorn, 13 Марта 2016

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

    • Это что, макросы?
      Ответить
      • Ну да. Раньше же не было for (auto &item : items)... Так что нормальный код, имхо.
        Ответить
    • > FOREACHINDYNAMICARRAY
      > FOREACHINLIST
      полиморфизм ещё не изобрели?
      Ответить
      • в макросах? так бывает?
        Ответить
        • да, см BOOST_FOREACH
          Ответить
        • Ну сам макрос полиморфным не сделаешь. Но он же может раскрыться в вызовы функций/шаблонов, которые можно перегружать/специализировать.
          Ответить
          • а, в этом смысле

            А то я уже подумал, что плюсы вышли на новый уровень извращения
            Ответить
            • скажем правильно: макросы поддерживают статический полиморфизм
              Ответить
              • Да ну? Помогают поддерживать другими способами, не более того...
                Ответить
                • Это типа "мы можем определить конкретный макрос через условную компиляцию" и тому подобное?
                  Ответить
                  • Нет. Мы можем спрятать страшную полиморфную хуйню в макрос.
                    Ответить

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