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

    +159

    1. 1
    const TWindow window(TWindowKindController::TWindowID WindowName, bool& isMainWindow=*(bool*)NULL)

    Крупный проЭкт.
    Мне кажется или с isMainWindow что-то не чисто?

    Запостил: Говногость, 14 Марта 2012

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

    • Говно справа.
      Ответить
    • А почему бы и нет, кстати? Необязательный [out] параметр.
      Другой вопрос, что указателем все-таки, наверное, было лучше - при вызове придется брать адрес, но амперсанд только добавит наглядности.
      Ответить
      • Можно бы и иерархию классов окон построить нормальную. А не заниматься извращениями.
        Ответить
      • Можно ещё boost::optional<bool&> тогда уже. Немного оверхеда, зато работать потом - один в один (кроме неявных преобразований, конечно) как с указателем, только при попытке разыменовать NULL (точнее, boost::none) будет ассерт.

        А конкретно за NULL в ссылке - руки отрывать и обратно в задний проход засовывать. С проворотом до щелчка. Т.к. у нормальных людей функция, принимающая ссылку, как раз и символизирует, что этот аргумент обязателен, и неинициализированным не должен быть никогда.

        А то так можно докатиться и до кодстайла с обязательными проверками ссылок на NULL...
        Ответить
        • >А то так можно докатиться и до кодстайла с обязательными проверками ссылок на NULL...
          У нас в этом проекте так и есть. :(
          Ответить
          • Виновника уже заставили сделать харакири тупым ножом?
            Ответить

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