На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (32) « Первая ... 22 23 [24] 25 26 ...  31 32  ( Перейти к последнему сообщению )  
> goto vs break & continue , Кроха-сын пришел к отцу и спросила кроха: "goto - это хорошо?"
    Цитата applegame @
    Спасибо, что лишний раз подтвердил убогость и уродство плюсов.
    Не за что. Я там так и говорил, что scope – это C-подобное убожество, и лучше уж
    ExpandedWrap disabled
      class Guard
      {
        std::function<void(void)> fn;         // функция очистки
       
      public:
        template <typename T> explicit Guard(T&& closure): fn(std::move(closure)) {}
        ~Guard() { fn(); }
      };

    с последующими там
    ExpandedWrap disabled
        HANDLE sameApp = CreateMutex(NULL, TRUE, uniqName.c_str());
       
        if (sameApp == NULL)
          return static_cast<void>(logMsg("CreateMutex() failed", GetLastError()));
       
        Guard sameAppGuarded([=]() { CloseHandle(sameApp); });
       
        if (GetLastError() == ERROR_ALREADY_EXISTS)
          if (WaitForSingleObject(sameApp, INFINITE) != WAIT_OBJECT_0)
            return static_cast<void>(logMsg("Recursive run detected for " + name.filename().string(), GetLastError()));
        Guard sameAppLocked([=]() { ReleaseMutex(sameApp); });
       
        {
          SECURITY_ATTRIBUTES attr = { sizeof(attr), NULL, TRUE };
          HANDLE hIn  = CreateFile((newName.parent_path() / "stdin.txt").string().c_str(),
                                   FILE_GENERIC_READ, FILE_SHARE_DELETE,&attr, CREATE_ALWAYS,
                                   FILE_ATTRIBUTE_NORMAL, NULL);
          Guard hInGuarded ([=]() { CloseHandle(hIn);  });
      /* ... */
        }
    что тоже костыль, но уже гораздо меньший, ибо является GNUсным аналогом его идиомы. К тому же без досадных недостатков последнего, что даже в C вызывали сложности.
    Сообщение отредактировано: Qraizer -
      Цитата JoeUser @
      Сейчас Qt сильно разросся во что только можно.

      Лично я бы qt не стал использовать ни для чего, кроме GUI. Да и GUI только из-за того, что альтернатив полноценных для C++ нет.

      Это фреймворк со своими правилами, которые уже давно очень сильно разошлись с правилами, принятыми в C++.
        Цитата D_KEY @
        Да и GUI только из-за того, что альтернатив полноценных для C++ нет.
        Поговаривают, одно время там обсуждалось что-то типа std::gui.
        Цитата D_KEY @
        Это фреймворк со своими правилами, которые уже давно очень сильно разошлись с правилами, принятыми в C++.
        Это-то и настораживает. Когда-то точно также VCL разошёлся с WinAPI
          Цитата Qraizer @
          Поговаривают, одно время там обсуждалось что-то типа std::gui.

          Ну вот если это введут, то это и будет killer-фичей, которая убьет QT.

          Добавлено
          Цитата Qraizer @
          Это-то и настораживает. Когда-то точно также VCL разошёлся с WinAPI

          Но VCL вывозил за счет своей простоты. На нем за денек можно было налабать какое то сурьезное приложение, которое там работает со звуком, БД, сетью еще чета там. Причем не имея в этом огромного опыта. Буквально сходу сел и пиши. В то время когда такое же приложение написать на том же MFC - уже было проблематично в указанные сроки, а на WinAPI и подавно - геморой.
          А в QT - поди разберись с ходу, я как то года два-три назад скачал QT Creator все поставил, сожрало места на диске дохрена, запустил, чета там потыкал, думал щас как в VCL, ага, фигвам! Потыкал потыкал, оно у меня что то там не собралось, я на это дело плюнул и забил.
          Сообщение отредактировано: Wound -
            Цитата Qraizer @
            Поговаривают, одно время там обсуждалось что-то типа std::gui.

            Честно говоря, я против. Это довольно динамичная и не достаточно фундаментальная сфера, чтоб пихать ее в std.
            Возможно, стоит добавить в C++ какую-то расширенную стандартную библиотеку и туда такие вещи выносить. Например, что-то вроде asio туда просится(а вот в std таки не стоит).
              Цитата D_KEY @
              Честно говоря, я против. Это довольно динамичная и не достаточно фундаментальная сфера, чтоб пихать ее в std.
              Возможно, стоит добавить в C++ какую-то расширенную стандартную библиотеку и туда такие вещи выносить. Например, что-то вроде asio туда просится(а вот в std таки не стоит).

              Я бы хотел чтоб в С++ внедрили подключаемые публичные репы, как это сделано в том же .NET - nuget пакеты, очень удобная вещь.
              Во первых отпадает необходимость тянуть все попало в язык, типа той же gui, во вторых не нужно замарачиваться где искать, прям из среды разработки зашел - указал репу, и все, либо руками в проект прописал и собирай.
              Это очень удобно.

              Добавлено
              Просто в комитете по стандартизации засиделись заскорузлые ретрограды, у которых в жопе ностальгия по 80-90-м играет. Поэтому они не делают смелых движений, и по крупице что то там вводят, что уже порой даже отжило себя.
                Цитата D_KEY @
                Честно говоря, я против. Это довольно динамичная и не достаточно фундаментальная сфера, чтоб пихать ее в std.
                За std::filesystem то же говорили. И за многопоточность. Ничего, сейчас живёт в неком виде, и даже вполне себе сносно выглядит. Другое дело, что я как-то с трудом себе представляю такую штуку стандартизированной, слишком уж комплексная. Это ж не просто окошки порисовать, ещё ж интерактивность какая-никакая нужна.
                Цитата Wound @
                Я бы хотел чтоб в С++ внедрили подключаемые публичные репы, как это сделано в том же .NET - nuget пакеты, очень удобная вещь.
                Та кто ж против-то. В конце концов в любой инфраструктуре уже есть подобное. Пусть и разрозненное в целом, но в частности вполне себе централизованное. Где-то это дебиановый репозиторий, где-то убунтовый, где-то макрософтовский сторадж. Но ведь это есть там, где есть конкретный хозяин. У того же .NETа он есть, у Дебиана есть, а где он у Плюсов? У него нет конкретного хозяина. Та и в принципе быть не может, Плюсы позиционируются как единые для всех и каждого, не исключая встроенные системы на простеньких микроконтроллерах. Ну вот есть какой-то там буст. Э-э-э...
                  Цитата Qraizer @
                  Та кто ж против-то. В конце концов в любой инфраструктуре уже есть подобное. Пусть и разрозненное в целом, но в частности вполне себе централизованное. Где-то это дебиановый репозиторий, где-то убунтовый, где-то макрософтовский сторадж. Но ведь это есть там, где есть конкретный хозяин. У того же .NETа он есть, у Дебиана есть, а где он у Плюсов? У него нет конкретного хозяина. Та и в принципе быть не может, Плюсы позиционируются как единые для всех и каждого, не исключая встроенные системы на простеньких микроконтроллерах. Ну вот есть какой-то там буст. Э-э-э...

                  Так кто то же занимается разработкой нового стандарта, вот пусть сядут подумают, не придумают, на крайняк можно попросить мелкомягких, те с радостью думаю предоставят площадку для такого, тем более что технология уже давно обкатана. Было бы желание, как говорится. Стандарт то откуда то скачать можно, кто то же его писал, хозяина нет, а стандарт разрабатывается. Пусть на те же донаты площадку поднимут. Я не думаю что это какая то проблема.
                    Цитата Wound @
                    Я бы хотел чтоб в С++ внедрили подключаемые публичные репы

                    Да, я тож за.

                    Добавлено
                    Цитата Qraizer @
                    Другое дело, что я как-то с трудом себе представляю такую штуку стандартизированной, слишком уж комплексная. Это ж не просто окошки порисовать, ещё ж интерактивность какая-никакая нужна.

                    О том и речь.
                      Цитата D_KEY @
                      Да, я тож за.

                      Я тоже за :lol:

                      Как-то собирал проект на Расте, чисто ради прикола (ел пельмени со сметаной в это время, домашние - с телятиной!). Так тамошний Cargo четко так, по-пацански, вытащил либы НУЖНЫХ ВЕРСИЙ, собрал их и потом уже прилинковал к откомпиляченным файлам проекта. Я чуть самый сочный пельмень не уронил!!! Ну очень мне эта кухня понравилась!!!

                      Но и в плюсах тож есть неизвестные герои, не побоюсь - без кавычек! Я как-то уже не раз заикался тут о проекте mxe.cc. ИМХО - проблески рационального подхода! Чел (или группа, не в курсе) замутил(и) систему кросс-компиляции Линупс->Уиндовс. И не абы какую, а с поддержкой определенного репозитария. Меня вот лично удивил порт DBUS на винду тамака реализованный :blink: Знаю - у пипла двоякое мнение на счет DBUS, пофик - важен сам факт. Да и сам факт существования этого проекта.

                      Это я к чему ... Есть проекты, которые могут стать чем-то большим, но увы - они зиждятся только на интузязизьме. Вот Киля хочет централизованную базу пэкеджей для С++ (либ, которые собираются без гемора и вскрытия вен под различные цели), ну как в Rust, Activestate Perl, возможно и в питоне, да - в PHP ... и я хочу, и все хотят - а кому этим заняться???

                      Скрытый текст
                      Вон в соседней теме "Куда двигаться дальше?" наши коллеги копья ломают о спинной мозг! А первый креатив - он, блин, на поверхности ... Замутить на базе исходников билд-сервер для плюсов!!! Но не просто и тупо. А взять пример с версионности растовского Cargo. Да, получится нефигенный граф зависимостей либ и их версий. Но и профит будет жэстачайшы (С)(бел.мова бел.лiдэра), имхо. Сюда бы финансистов и финансовых аналитиков привлечь - катались бы все как масло по шоколаду! :lol:
                        Для C++ довольно сильно распространен conan.
                          Цитата D_KEY @
                          Для C++ довольно сильно распространен conan.

                          Проект интересный, но качество неочень. К примеру, из доступных предкомпилированных версий OpenSSL для винды, для GCC вааще ничего нет, только под Линупс. Только рецепты.
                            Цитата D_KEY @
                            И в чем же такая принципиальная разница между:
                            В оверхеде, вестимо. Запихивание лямбды в std::function будет сопровождаться аллокациями в куче, даже если лямбда без замыканий. scope(exit) лишен этого недостатка. Хотя есть ненулевая вероятность, что шибко умный компилятор сумеет соптимизировать это дело, но я сомневаюсь, надо пробовать.
                            Ну и многословнее оно на плюсах, имена нужно гвардам давать, да еще и не повторяющиеся. Костыль, короче.
                            Сообщение отредактировано: applegame -
                              Зависит от реализации. std::basic_string<> тоже далеко не во всех случаях использует хип. Простые – а замыканиями обычно таковые и являются, ибо помимо самого замыкаемого объекта других состояний не хранят – будут себе спокойно лежать на стеке.

                              Добавлено
                              Цитата applegame @
                              Костыль, короче.
                              Зато с ручкой, в отличие от Dшного.
                                Цитата applegame @
                                В оверхеде, вестимо. Запихивание лямбды в std::function будет сопровождаться аллокациями в куче, даже если лямбда без замыканий.

                                Я помню был какой-то похожий спор с твоим участием (кажется в тематике), где в итоге обнаружилось, что std::function не уступает Dшным замыканиям :)

                                Там можно сделать и полностью шаблонный класс, без std::function, а deduction guides позволят не писать лишний раз ни типы, ни обертки в духе make_*.

                                Добавлено
                                Цитата applegame @
                                Ну и многословнее оно на плюсах, имена нужно гвардам давать, да еще и не повторяющиеся.

                                Не думаю, что это проблемой будет реальной.

                                Цитата
                                Костыль, короче.

                                Тут, конечно, от определения "костыля" зависит, но если понимать под костылем быстрое плохое решение вместо правильного, но более трудоемкого, то разницы с D никакой.
                                Сообщение отредактировано: D_KEY -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (32) « Первая ... 22 23 [24] 25 26 ...  31 32


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1557 ]   [ 15 queries used ]   [ Generated: 5.05.24, 01:09 GMT ]