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

    +161

    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<typename T,typename FIELD_T>
    struct type_has_field{
      typedef char yes_type;
      struct no_type{char padding[8];};
      template<class U>
      static yes_type check_sig1(
        U*,
        FIELD_T(U::*)=&U::field          // !!!Most importantly!!!
      );
      template<class U>
      static no_type check_sig1(...);
      static const bool value=sizeof(check_sig1<T>(0))==sizeof(yes_type);
    };

    http://www.gamedev.ru/code/forum/?id=152200

    Запостил: CPPGovno, 10 Сентября 2011

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

    • Fla
      >Ах да, это все крестопроблемы.
      Ответить
    • с одной стороны забавляют доморощенные попытки прикрутить динамизм к С++.

      с другой стороны мудачество стандартизаторов, которые и не секунды не пытаются облегчить жизнь тех кому это надо реализовывать, удручает. а надо бывает.

      это те моменты когда я желаю что бы Objective-C++ задавил все остальные варианты С/С++: вот тебе и динамика, вот тебе и статика. взболтаный, но не смешаный.
      Ответить
      • > взболтаный
        Ответить
      • Objective-C++ уныл.
        Ответить
        • >Objective-C+
          Кстати, где пример кода на этом языке можно посмотреть? Видел ссылку с вики на этот язык, мол этот язык есть, но статья об этом языке отсутствует.
          Или это такая тонкая шутка википидоров о том, что С++ как бы не особо объектный?
          Ответить
    • Самое сложное в работе с C++-шаблонами - вовремя отказаться от их использования.

      И нет тут никакой динамики: это статическая compile-time проверка. Думаешь, что нужна динамика - подумай, действительно ли она нужна? Действительно нужна динамика - не рассматривай C/C++ в качестве языка реализации.
      Ответить
    • В govnokod.ru не заносить.
      Ответить
      • Это стоит добавить в заголовок сайта gamedev.ru.
        "GameDev.ru - разработка игр. В govnokod.ru НЕ ЗАНОСИТЬ!!!"
        Ответить
      • Не думал, что моя фраза станет такой популярной.
        Ответить
    • А теперь небольшой _опрос_ :
      Каково, по вашему мнению, необходимое и достаточное
      качество и количество параметров метода/функции, при котором необходимо(по самым разным причинам) объединять их(параметры) в _меньшее_количество_ , используя встроенные/пользовательские типы данных.
      Например:
      https://github.com/negativ/eiskaltdcpp/blob/master/dcpp/SearchManager.h
      uint64_t search(StringList& who, const string& aName, const string& aSize,TypeModes aTypeMode, SizeModes aSizeMode, const string& aToken, const StringList& aExtList, void* aOwner = NULL) 
      {
          return search(who, aName, Util::toInt64(aSize), aTypeMode, aSizeMode, aToken, aExtList,aOwner);
      }
      Ответить
    • http://govnokod.ru/user/2
      Почему этот пользователь, написавший столько говнокода, до сих пор не выложил ни одного?

      Ошибки достали... Я ни одного сайта не видел с таким кол-вом сбоев...
      Ответить

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