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

    +15

    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
    // file: Filter.h
    
            inline const CString GetField() const
            {
                if (m_strField.compare(MBL_FT_AUTHID_STRING) == 0)
                {
                    return CString(MBL_FT_AUTHID_SERVER_STRING);
                }
                else if (m_strField.compare(MBL_FT_CORRELATION_ID_STRING) == 0)
                {
                    return CString(MBL_FT_CORRELATION_ID_SERVER_STRING);
                }
                else if (m_strField.compare(MBL_FT_PLAN_STRING) == 0)
                {
                    return CString(MBL_FT_PLAN_SERVER_STRING);
                }
                // ... всего 14 веток в таком духе ...
                else if (m_strField.compare(MBL_FT_DDF_ACCOUNTING_STRING_STRING) == 0)
                {
                    return CString(MBL_FT_DDF_ACCOUNTING_STRING_SERVER_STRING);
                }
                return m_strField;
            }

    Автор — русский.

    Запостил: Lavir_the_Whiolet, 21 Марта 2014

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

    • >inline const
      Сразу видно, заботится об оптимизации.
      Ответить
    • оо, MFC, технологии будущего
      Ответить
    • >// ... всего 14 веток в таком духе ..
      надо ж было еще не полениться, посчитать.
      По-моему, здесь должно быть банальная мапа цстроки в цстроку.
      Ответить
      • [madskills]Да макросами же.[/madskills]
        #define CHECK(X) if (m_strField.compare(X) == 0) return CString(X); else
        ...
        #undef DO
        Ответить
        • Ну, да, SERVER я тоже не заметил.
          Надо так
          #define CHECK(X) if (m_strField.compare(MBL_FT_##X##_STRING) == 0) return CString(MBL_FT_##X##_SERVER_STRING); else
          Ответить
    • Посоны, я обосрался (дважды, наверно, хм). Я почему-то прочитал этот кусок как:
      else if (m_strField.compare(MBL_FT_SOMETHING) == 0)
      {
          return MBL_FT_SOMETHING;
      }

      А оно совсем не так выглядит.

      Минусуйте.
      Ответить
    • return m_strField.Insert(#-7, SERVER_)
      Ответить

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