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

    +13

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    TAbstractMessageFrame * SwitchIfNeedReceivePackets = create_switch(
    		fnc_ext::bind(this,
    					  fnc_ext::compose2(std::greater<WORD>(),
    										fnc_ext::get_mem(&TThisClass::_totalDataLength),
    										fnc_ext::compose1(std::bind1st(std::minus<WORD>(), static_cast<WORD>(TByteBuffer::MaxCapacity)),
    														  fnc_ext::compose1(fnc_ext::get_mem_func_ref(&TThisClass::TByteBuffer::length),
    																			fnc_ext::get_mem(&TThisClass::_receivedBuffer))))),
    //										fnc_ext::get_mem_func(&TThisClass::FreeBufferSpace))),
    		DataByPackets, DataByLength, "Switch If Need Receive Packets" );

    Запостил: Говногость, 04 Сентября 2013

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

    • boost\std::bind, boost::phoenix, C++11::lambdas, local functions?
      Ответить
      • > boost\std::bind, boost::phoenix
        Ты уверен, что они на этом взлетят?
        Ответить
        • В новом билдере поддержка с++11 получше чем в msvc, да и с бустом нет проблем.
          Ответить
        • Так в билдере свой порт буста же из коробки.
          Ответить
          • > свой порт буста
            braking::bind и braking::lambda
            Ответить
            • Лол, я серьёзно, зря смеёшься :p
              http://docwiki.embarcadero.com/RADStudio/XE3/en/Boost_Libraries
              Ответить
              • namespace TBoost = ::boost;

                на деле же - пиздец
                почему только эти версии и почему только под 64 бита?
                Ответить
                • For a 64-bit Windows C++Builder installation, you need at least 3 Gigabytes of free disk space in order to ensure that the Boost Libraries are correctly installed
                  Ответить
                  • ну и в чем проблема?
                    под msvc буст, при желании, собирает кучу версий одной библиотеки - debug/release, mt/md, single threaded, да на любой вкус - настраивается командной строкой
                    лично у меня конкретно этой версии папка boost_1_50_0/stage/lib 1.5Гб

                    почему 1.50 только под х64 таргет? что за несуразица?
                    его хоть можно пересобрать самолично?
                    Ответить
                    • А, тьфу, он все версии же ставит, поэтому 3 гига. Что-то я сегодня совсем туплю.

                      > его хоть можно пересобрать самолично?
                      Да всяко, если верить заявлениям про с++11. Он же только have been fully tested and preconfigured specifically for C++Builder XE3, а не пропатчен.
                      Ответить
                      • > Он же только have been fully tested and preconfigured specifically for C++Builder XE3, а не пропатчен.
                        Трололос.
                        Ответить
                        • Да я серьезно писал. Я думаю, что они написали бы "patched for C++Builder XE3", если бы что-то кроме настроек поменяли.
                          Ответить
                          • Все патчи и воркеранды за них уже написали бустократы. Им осталось собрать и оформить в инсталятор. И конечно срубить бобла. :D
                            Ответить
                • >почему только под 64 бита?
                  Потому что они не осилили написать свой компилятор под 64 бита и взяли clang. Кроссплатформенность, последние версии стандартов, все дела.
                  Ответить
                  • Хм, а почему они для 32 бит кланг не юзают?
                    Ответить
                    • а для 32-бит у них уже есть компилятор, зачем ломать то что работает?
                      Но да, несколько упоротая позиция.
                      Ответить
                  • А еще могли бы быть не полными мудаками и таки вернут патчи для поддержки винды в апстрим clang'а.
                    Ответить
                    • А шланг под винду разве не пашет?

                      > вернут патчи для поддержки винды в апстрим clang'а
                      Вот был бы он ЖПЛ... а так, имхо, хрен че они вернут.
                      Ответить
                      • шланг под винду - "экспериментал"
                        Ответить
                        • Исключения, относительно нинужный rtti, а также санитайзеры упорно не работают (не линкуются, или я не осилил?).

                          Остальное еще с 3-ей версии пашет вполне прилично.
                          >Вот был бы он ЖПЛ
                          Вут? GPL совместимости и опен-сорцности достаточно, там же всякие конторы участвуют.
                          Ответить
                          • Имеется в виду что к GPL компилятору патчи были бы ОБЯЗАНЫ выложить. А к LGPL не обязаны, и потому не выложат.
                            Ответить
                            • LGPL: Юзаешь либу - ок, юзай. Подпилил либу - гони сырцы тем, кому даешь пилёную либу (остальным - не обязательно).

                              Тащемта LGPL - идеальная лицензия для либ. В отличие от GPL даёт либу юзать без палева и не открывая остального кода. Но, в то же время, в отличие от BSD все же заставляет отдавать патчи к самой либе.
                              Ответить
                            • Скажите спасибо что их BSD GPL-совместимая. Много контор будут спонсировать и развивать llvm при том условии что они не обязанны открывать исходники.

                              Идейным борцам за открытость кода никто не мешает использовать полностью GPLный GCC.
                              Ответить
            • TBraking::TBind и TBraking::TLambda же.
              Ответить
    • > TAbstractMessageFrame
      дальше можно не читать
      Ответить
      • ТКрестоБилдер детектед.
        Ответить
        • Да ты посмотри как не быдлово сделано через недолямбды функции низшего порядка.
          Ответить
    • Я мужду прочим в старой студии пользуюсь даже std::identity и std::select2nd, включив соответствующий ключик. Те кто настоящий STL видели знают что это такое.
      id и snd
      Ответить
    • Шо, говногость еще жив?
      Ответить

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