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

    +11

    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
    24. 24
    AbstractMessageFrame * DataLength = create_frame(
    		make_condition_reader(this,
    			fnc_ext::bind(
    				fnc_ext::compose1(
    					fnc_ext::compose2(std::logical_or<bool>(),
    									  std::bind2nd(std::equal_to<byte>(), PC5000FlashFeatures::MARKER_SYMBOL),
    									  std::bind2nd(std::equal_to<byte>(), PC5000FlashFeatures::SPACE_SYMBOL)),
    					fnc_ext::mem_fun<const ByteBuffer, const byte&>(&ByteBuffer::back) ),
    				&_receivedBuffer),
    			fnc_ext::bind(
    				fnc_ext::compose2(std::logical_or<bool>(),
    								  fnc_ext::compose1(std::bind2nd(std::greater<WORD>(),
    																 PC5000FlashFeatures::LENGTH_HEADER +
    																 _maxCommandFieldLength +
    																 PC5000FlashFeatures::LENGTH_MARKER +
    																 PC5000FlashFeatures::LENGTH_OF_LENGTH),
    													fnc_ext::mem_fun(&ByteBuffer::length)),
    								  fnc_ext::compose1(fnc_ext::compose2(std::logical_and<bool>(),
    																	  std::not1(std::ptr_fun<const char, bool>((SymbolCheckFunc)isDigit)),
    																	  std::not1(std::ptr_fun<const char, bool>((SymbolCheckFunc)isEnglishLetter))),
    													fnc_ext::mem_fun<const abstractBuffer<unsigned char>, const byte&>(&ByteBuffer::back)) ),
    				&_receivedBuffer) ),
    		fnc_ext::bind(std::mem_fun(&ThisClass::setDataLength), this),
    		"Data Length");

    Композиции, частичные применения, функторы? Больше тотальной функциональщины! Вложенность продолжает расти с развитием проекта.

    Запостил: laMer007, 17 Сентября 2013

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

    • анальненько
      Ответить
    • Зато ты посмотри сколько применения стандартной библиотеки. Без дела не стоит. Работодатель это оценит. Такое то переиспользование STL.
      std::mem_fun
      std::bind2nd
      std::equal_to
      std::logical_or
      std::ptr_fun
      std::not1
      std::logical_and

      std::mem_fun fnc_ext::mem_fun
      Парень не велосипедист, хотя промахнулся c isDigit std::isdigit.
      Ответить
    • > fnc_ext
      Это что вообще такое? Гугл по запросу fnc_ext выдает 10 страниц уютненького, а дальше всякий хлам, не имеющий отношения к делу :)

      Сибилдероблядство какое-нибудь?
      Ответить
      • Внутренняя библиотека какой-нибудь компании?
        Ответить
      • судя по предыдущим постам страдальца, без дебилдера тут явно не обошлось, однако fnc_ext - рукотворное чудо
        Ответить
        • Что ты наехал? Круто же. Это не говнокод.
          Ответить
          • Круто - не значит, что не говнокод. Такой код, как в топике, не нужен.
            Ответить
            • Но почему? Все функци анальщики так делают? Почему другим так нельзя?
              Ответить
              • > Все функци анальщики так делают? Почему другим так нельзя?
                Потому что они это делают на особых, функци анальных языках.
                Ответить
              • Анальщики тоже в жопу ебутся. И тебе тоже можно. Разрешаю.
                Ответить
                • Как будто ты сам не практикуешь это, мой латентный друк.
                  Ответить
                  • Сделаю миньет парню кавказской нацианальности.
                    Ответить
                    • Не спонсируй троллинг, мой анальный друк.
                      Ответить
        • Иконка у него классная - панельные многоэтажки ночью.
          Ответить
    • показать все, что скрытоИщу партнёра для секса. Есть своя квартира. Анал, орал, группа. Пиши мне на [email protected]
      Ответить
    • показать все, что скрытоhttp://forum.pickup.ru/index.php?showtopic=18084
      Ответить
    • Га га. Да вы ниосиляторы. Я по названиям функций даже могу понять что код делает. Почти не заглядывая в реализацию и сигнатуры. Ну тупые...
      Ответить

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